成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Ios/Android h5 喚起本地APP

shusen / 1317人閱讀

摘要:糾結(jié)兩天瀏覽器中喚起本地,一直找不到解決方案,今天總算基本搞定。

糾結(jié)兩天(瀏覽器中喚起本地APP),一直找不到解決方案,今天總算基本搞定。

ps:吐槽一下 魔窗那篇文章,為什么就不直接把js代碼開源開源,混淆后的代碼看得我好惱火

參考文章:魔窗解決方案、京東解決方案

首先是判斷瀏覽器
// 判斷瀏覽器
var Navigator = navigator.userAgent;
var ifChrome = Navigator.match(/Chrome/i) != null && Navigator.match(/Version/d+.d+(.d+)?sChrome//i) == null ? true : false;
var ifAndroid = (Navigator.match(/(Android);?[s/]+([d.]+)?/)) ? true : false;
var ifiPad = (Navigator.match(/(iPad).*OSs([d_]+)/)) ? true : false;
var ifiPhone = (!ifiPad && Navigator.match(/(iPhonesOS)s([d_]+)/)) ? true : false;
var ifIos = Navigator.match(/iPhone|iPad|iPd/i) ? true : false;
var ifSafari = ifIos && Navigator.match(/Safari/);
// ios 設(shè)備的版本號
var iosVersion = Navigator.match(/OSs*(d+)/)
iosVersion = iosVersion ? (iosVersion[1] || 0) : 0;
// 安卓版本號
var androidVersion = Navigator.match(/Androids*(d+)/)
androidVersion = androidVersion ? (androidVersion[1] || 0) : 0;
android5 及以上的高版本
// 延后50毫秒
setTimeout(function() {
    location.href = ‘自定義 URL’
}, 50)
ios9 及以上的版本
setTimeout(function() {  // 必須要使用settimeout
    var a = document.createElement("a"); //創(chuàng)建a元素
    a.setAttribute("href", ‘自定義 URL’), a.style.display = "none", document.body.appendChild(a);
    var t = document.createEvent("HTMLEvents"); // 返回新創(chuàng)建的 Event 對象,具有指定的類型。
    t.initEvent("click", !1, !1) // 初始化新事件對象的屬性
    a.dispatchEvent(t)  // 綁定事件
}, 0)
所有情況都用 iframe
document.querySelector("#" + iframe).src = ‘自定義 URL’ // 將iframe增加src
計算時差的方案打開APP
var checkOpen = function (cb){
    var _clickTime = +(new Date());
    function check(elsTime) {
        if ( elsTime > 3000 || document.hidden || document.webkitHidden) {
            cb(1);
        } else {
            cb(0);
        }
    }
    //啟動間隔20ms運行的定時器,并檢測累計消耗時間是否超過3000ms,超過則結(jié)束
    var _count = 0, intHandle;
    intHandle = setInterval(function(){
        _count++;
        var elsTime = +(new Date()) - _clickTime;
        if (_count>=100 || elsTime > 3000 ) {
            clearInterval(intHandle);
            check(elsTime);
        }
    }, 20);
}
checkOpen(function(opened){
    // APP沒有打開成功  并且開啟自動跳轉(zhuǎn)到下載頁
    if(opened === 0 && option.autoRedirectToDownloadUrl){
        location.href = downloadUrl;
    }
});
注意

ios9 以上的 Universal Link 設(shè)置自行百度下(這個需要問問ios開發(fā)人員) 這里還有個我自己發(fā)現(xiàn)的 bug
在Android里面的qq里面打開
如果打開APP的同時立馬返回到QQ里面,應(yīng)用寶的下載頁立馬又重新打開APP。ios里面也有個情況,打開APP的同時立馬用左上角的返回再次點擊打開APP按鈕則
Universal Link 失效,跳轉(zhuǎn)到配置好的 Universal Link 鏈接,大家有知道的解答哈,共同成長
如果ios9 里面沒有安裝APP 則直接就挑轉(zhuǎn)到 Universal Link 鏈接 ,這應(yīng)該是個bug,我想的是,如果沒有安裝APP 則跳轉(zhuǎn)到應(yīng)用寶,這個不知道怎么實現(xiàn)

測試的配置所有用的 得到 的APP鏈接,為了方便

GitHub上面有個示例:https://github.com/lmxdawn/te...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/51263.html

相關(guān)文章

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<