這篇文章主要為大家展示了“如何使用js判斷手機是否安裝某個app”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何使用js判斷手機是否安裝某個app”這篇文章吧。
解決方案 一
//html代碼中 的 a 標簽,以微信為例,默認的是調用weixin scheme,去打開本機的微信,如果沒有則跳轉到相應連接
<a href="weixin://" rel="external nofollow" class="btn-download">立即打開</a>
// 為btn-download 綁定事件,如果在500ms內,沒有解析到協議,那么就會跳轉到下載鏈接
var appstore, ua = navigator.userAgent;
if(ua.match(/Android/i)){
appstore = 'market://search?q=com.singtel.travelbuddy.android';
}
if(ua.match(/iphone|ipod|ipad/)){
appstore = "https://itunes.apple.com/cn/app/wei-xin/id414478124?mt=8&ign-mpt=uo%3D4";
}
function applink(fail){
return function(){
var clickedAt = +new Date;
// During tests on 3g/3gs this timeout fires immediately if less than 500ms.
setTimeout(function(){
// To avoid failing on return to MobileSafari, ensure freshness!
if (+new Date - clickedAt < 2000){
window.location = fail;
}
}, 500);
};
}
$('.icon-download, .btn-download')[0].onclick = applink(appstore);解決方案二
通過在頁面中生成一個隱藏的iframe,iframe的src指向 app 協議,例如 weixin scheme,并監聽onerror事件,意思是如果無法解析協議,就會觸發onerror事件,但是我嘗試了一下,未果。代碼如下,可參考一下。
// 頁面中有div#iframe-box 用來插入生成的iframe,還是以微信為例
var ifm = document.createElement('iframe'), isInstalled;
ifm.style.display = 'none';
ifm.src = 'wixin://';
ifm.onload = function(e){
var e = e || window.event;
e.preventDefault();
}
ifm.onerror = function(){
//isInstalled = false;
alert(1);
}
document.getElementById('iframe-box').appendChild(ifm);
// 但這時的問題是,iframe的src成功解析到了協議,則會直接跳轉,但是解析不到的話,也不會觸發error事件,這個還要繼續研究
// 可以把上面的代碼,放到函數中,然后作為某個按鈕的響應函數。解決方案三
對于ios手機,會有如下寫法
<meta name="apple-itunes-app" content="app-id=414478124" />
將上面代碼放到head中,根據name也會知道意思,app-id是微信的app-id,用ios手機看會看到提示,andriod比可以,結果自行實驗。
以上是“如何使用js判斷手機是否安裝某個app”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。