Sayfanın bir yönlendirme nedeniyle gizlendiğini algılayacak bir mobil safari etkinliğini arıyorum. Bir kullanıcı yüklediyse uygulamanızı doğrudan açmak istiyorum, ardından yüklenmişse facebook'u deneyin ve daha sonra bu kimlik için web sayfasına gidin.Mobil Safari Sayfası Derin Bağlama için kaldırma/gizleme/bulanıklaştırma
- 'myapp' kuruluysa, myapp açılır. Ancak safari sekmesi hala facebook.com'a yönlendiriliyor
- Eğer 'myapp' kurulu değilse, ama facebook ise, facebook ios uygulaması açılır. Ama safari sekmesi hala aşağıdaki HTML/JS ile test link oluşturduk facebook.com
yönlendiriliyordur:
<!DOCTYPE html>
<html>
<head>
<title>Redirect Test</title>
<script type='text/javascript' src='//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js'></script>
<meta name='viewport' content='initial-scale = 1.0,maximum-scale = 1.0' />
</head>
<body>
<button>Open Oreo</button>
<script type='text/javascript'>
jQuery(function(){
jQuery('button').on('click', function(){
var myid = null, fbid = null;
// Watch for page leave to kill timers
jQuery(window).on('pagehide pageshow blur unload', function(){
if (myid) {
clearTimeout(myid);
}
if (fbid) {
clearTimeout(fbid);
}
});
window.location = "myapp://fbprofile/oreo";
var myid = setTimeout(function(){
// My app doesn't exist on device, open facebook
window.location = "fb://profile/oreo";
fbid = setTimeout(function(){
// Facebook doesn't exist on device, open facebook mobile
window.location = "https://www.facebook.com/oreo";
}, 100);
}, 100);
});
});
</script>
</body>
</html>
Bahşiş için teşekkürler! Ne yazık ki bu bir düğme kullanıyorum ve javascript ile yönlendiriyor, çünkü bir bağlantı yerine geçerli değil. Bu yüzden iptal etmek için 'link click bubble' etkinliği yok. –
Haklısınız - Kalçadan vuruldum ve bu gerçeği tamamen gözden kaçırdım! Yine de, tarayıcı kontrol standları ile ilgili öneri. Yukarıda benim düzenlenmiş cevabımı görün - ilgili setleri 'setTimeout' işlevleri içinde hareket ettirin ve clearTimeout'lardan kurtulun. – goddogsrunning
Safari, yeniden başlatıldıktan sonra en son ziyaret edilen sayfayı yeniden açar ve betik bu durumda çalışmayacaktır. Bu davranıştan kaçınmak için, 'window'close();' 'else' bloklarına ekleyebilirsiniz. – ruphus