首頁 >web前端 >H5教程 >h5怎麼喚醒app

h5怎麼喚醒app

php中世界最好的语言
php中世界最好的语言原創
2018-01-11 09:27:424189瀏覽

這次帶給大家用h5怎麼喚醒app,怎麼用h5喚醒app?  h5喚醒app的注意事項有哪些,以下就是實戰案例,一起來看一下。

h5喚起app這種需求是常見的。在移動為王的時代,h5在app導流上扮演著重要的角色。

三種喚起方案

目前我們採用的喚起方式是url scheme(iOS,Android平台都支援),只需原生APP開發時註冊scheme,那麼用戶點擊到此類連結時,會自動跳到APP。

var last = Date.now(),
    doc = window.document,
    ifr = doc.createElement('iframe');
 
//创建一个隐藏的iframe
ifr.src = nativeUrl;
ifr.style.cssText = 'display:none;border:0;width:0;height:0;';
doc.body.appendChild(ifr);
 
setTimeout(function() {
    doc.body.removeChild(ifr);
    //setTimeout回小于2000一般为唤起失败
    if (Date.now() - last < 2000) {
        if (typeof onFail == &#39;function&#39;) {
            onFail();
        } else {
            //弹窗提示或下载处理等
        }
    } else {
        if (typeof onSuccess == &#39;function&#39;) {
            onSuccess();
        }
    }
}, 1000);

iframe方案的喚起原理是: 程式切換到後台時,計時器會被延遲(計時器不準的又一種情況)。如果app被喚醒那麼網頁必然就進入了後台,如果使用者從app切回來,那麼時間一般會超過2s;若app沒有被喚起,那麼網頁不會進入後台,setTimeout基本上準時觸發,那麼時間不會超過2s 。

window.location.href直接跳轉

window.location.href = nativeUrl;


#a標籤喚起

<a href="nativeUrl">唤起app</a>


##對比iframe喚起和location.href,我們可以發現:

對於ios來說,location.href跳轉更合適,因為這種方式可以在Safari中成功喚起app。 Safari作為iphone預設瀏覽器其重要性就不用多說了,而對於微信和qq客戶端,ios中這兩種方式都沒有什麼卵用==

#對於Android來說,在進入頁面在直接喚起的情況下,iframe和location.href是一樣的,但是如果是事件

驅動的喚起,iframe喚起的表現比location.href要更好一點。

透過測試可以發現,進入頁面直接喚起和事件驅動的喚起,對於許多瀏覽器,兩者的表現是不同的,簡單來說,直接喚起的失敗更多。

透過上述比較分析,Android使用iframe喚起,ios採用window.location.href喚起更合適一點。

相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

H5的web本地儲存如何使用

H5怎麼實作拖放功能

H5的進階段內嵌標籤

以上是h5怎麼喚醒app的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn