前端處理在web打開app功能,有app就打開,沒app就提示需要下載直接跳到下載app的頁面


由於有的瀏覽器是禁止在js里面直接用location跳到app地址的,所以統一用一個彈框提示用戶要不要跳到app,確定按鈕是一個a標簽,地址是app那邊設置的可以通過鏈接打開app的地址;

需要打開app的地方調用自己封裝的打開彈框的方法 ,這里就是彈出一個確認框可以用自己的;通過頁面可見性的改變事件來處理是否安裝了app;

用到的知識點  visibilitychange :https://developer.mozilla.org/zh-CN/docs/Web/API/Document/visibilitychange_event

 toShowConfirmLay(“要打開app嗎?”);
 
//跳app的取消框
var hiddenPro = 'hidden' in document ? 'hidden' : 
'webkitHidden' in document ? 'webkitHidden' :
'mozHidden' in document ? 'mozHidden' :
null;
var appTime = null
//兼容不同的瀏覽器
var changeEvent = hiddenPro.replace(/hidden/i,'visibilitychange')
//窗口是否可見事件變化的回調函數
function isGoApp(){
    if(!document[hiddenPro]){
        //留在了當前頁面
    }else{
        //跳到了app把提示要下載app的定時器去掉不需要提示了,把窗口監聽去掉
        clearTimeout(appTime)
        document.removeEventListener(changeEvent,isGoApp)
    }
};
//跳app的確認框 
$(document).on("click", ".sure", function () {
    toHideConfirmLay(); //隱藏彈框
    document.addEventListener(changeEvent,isGoApp) //點擊確認后就開始監聽這個窗口可見改變的事件
    appTime = setTimeout(function(){//設置一個定時器提示要下載app,如果有app的話在上面的回調函數把這個定時器清除不觸發
        document.removeEventListener(changeEvent,isGoApp)lopdealsToast("text","請先安裝app",3000,function(){
            //需要下載的app的下載地址
            location.href="https://play.google.com/store/apps/details?''''"
        })
    },2000)
});
$(document).on("click", ".cancel", function () { //是否跳到app的取消按鈕的點擊事件,把彈框去掉
    toHideConfirmLay();
});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM