26
我正在尋找移動Safari瀏覽器上的事件,當頁面被重定向時將會檢測到頁面被隱藏。我想直接打開我的應用程序,如果用戶安裝它,然後嘗試Facebook,如果它安裝,如果沒有,然後去該網頁的ID。移動Safari瀏覽器頁面卸載/隱藏/模糊深入鏈接
- 如果安裝了「myapp」,則打開myapp。但Safari瀏覽器標籤仍然被重定向到facebook.com
- 如果'myapp'沒有安裝,但是facebook是,那麼facebook ios應用程序被打開。但Safari的標籤仍然被重定向到facebook.com
我已經創建了下面的HTML/JS一個test link:
<!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>
感謝您的提示!不幸的是,這不適用,因爲我正在使用一個按鈕並用JavaScript重定向,而不是鏈接。所以沒有'鏈接點擊泡泡'事件取消。 –
你是對的 - 我從臀部開槍,完全錯過了這個事實!雖然,關於瀏覽器檢查的建議仍然存在。看到我上面編輯的答案 - 移動'setTimeout'函數中的相關檢查,並擺脫了'clearTimeout's。 – goddogsrunning
Safari在重新啓動後重新打開上次訪問的頁面,在這種情況下腳本將不起作用。爲了避免這種行爲,可以將'window.close();'附加到'else'塊。 – ruphus