話不多說盗似,先上代碼
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>this's a demo</title>
<meta name='apple-itunes-app' content='app-id=xxxx'>
</head>
<body>
<a href="javascript:;" id="openApp">打開APP</a>
</body>
</html>
<script type="text/javascript">
document.getElementById('openApp').onclick = function(e){
e.preventDefault();
if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i))
{
let loadDateTime = Date.now();
window.setTimeout(function(){
let timeOutDateTime = Date.now();
if ((timeOutDateTime - loadDateTime) < 1000 ){
window.location.href = "http://cxxxl";
}
},250);
window.location.href = "weixin://";
}
else if(navigator.userAgent.match(/android/i))
{
window.location.href = "weixin://";
window.setTimeout(function() {
window.location.href = "http://xxxxx";
}, 2000)
} else {
window.location.href = "http://xxxx";
}
};
</script>
這個也是網(wǎng)上例子基礎(chǔ)上的一點小改動,發(fā)現(xiàn)在safari上,偶爾會出現(xiàn)瀏覽器閃退的現(xiàn)象它浅,沒找到原因(不知道和HbuilderX的自動刷新有沒有關(guān)聯(lián)),如果你找到原因告知我镣煮,不甚感激姐霍。
網(wǎng)上比較多的一個說法是利用iframe來進(jìn)行跳轉(zhuǎn),但是我實驗發(fā)現(xiàn)iframe竟然失效了,上面代碼實驗是可行的镊折。
上面的代碼解決了打開app的問題黔衡,但是還不是特別完美,有幾個問題暫時沒找到簡單而完美的解決:
1腌乡、在safari中是否可以不彈出Open in ”XXX“盟劫,而是直接打開APP的?
2与纽、如果已安裝并跳轉(zhuǎn)之后侣签,safari是否可以不執(zhí)行timer跳轉(zhuǎn)到下載頁面?
3急迂、當(dāng)沒有安裝app時影所,safari會彈出提示,無效的鏈接地址僚碎,這個有沒有好的辦法讓它不出現(xiàn)猴娩?