小編給大家分享一下HTML5頁(yè)面中如何嘗試調(diào)起APP功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)是專(zhuān)業(yè)的滕州網(wǎng)站建設(shè)公司,滕州接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行滕州網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
在市面上經(jīng)常見(jiàn)到這種功能現(xiàn)如今應(yīng)該非常普遍了,淘寶H5,知乎H5等等。。。
點(diǎn)擊后會(huì)調(diào)起APP或者打開(kāi)下載頁(yè)面或者直接進(jìn)行下載。
但是我這里發(fā)現(xiàn)知乎的這個(gè)功能有點(diǎn)不一樣
他的邏輯是先提示我是否打開(kāi)手機(jī)中的知乎APP(瀏覽器的機(jī)制詢(xún)問(wèn)用戶(hù)操作許可),然后接著又彈出下載的提示。
解決方案URL scheme
URL scheme的方式在IOS和安卓都支持,兼容性較好。
優(yōu)先使用iframe的方式
偽代碼如下:
const iframe = document.createElement('iframe'); iframe.src = 'URL scheme'; // URL scheme的方式跳轉(zhuǎn) iframe.style.display = 'none'; document.body.appendChild(iframe);
這時(shí)候如果在一切環(huán)境支持的情況下,就會(huì)喚醒APP了。
但是這是理想情況下,更多的是要做兼容處理這快邏輯。
有些系統(tǒng)會(huì)攔截iframe的src(這只是造成喚醒APP失敗的其中一種原因),因?yàn)檫@個(gè)src屬性是一個(gè)法外hacker,很多漏洞都是利用他造成的。
所以這時(shí)候就要判斷調(diào)APP失敗的情況了。
偽代碼如下:
const timer = 1000; setTimeout(function() { // 執(zhí)行成功后移除iframe document.body.removeChild(iframe); //setTimeout小于2000通常認(rèn)為是喚起APP失敗 if (Date.now() - last < 2000) { // 執(zhí)行失敗函數(shù) // 這里需要考慮一下之前知乎遇到的那個(gè)問(wèn)題(瀏覽器詢(xún)問(wèn)導(dǎo)致時(shí)間小于2S) } else { // 執(zhí)行成功函數(shù) } }, timer);
理解:
如果喚起成功,H5頁(yè)面會(huì)被切換到后臺(tái),計(jì)時(shí)器就會(huì)延遲。即使用戶(hù)再?gòu)腶pp切換到H5頁(yè)面,這個(gè)時(shí)間差必然也是大于2S的。
如果喚起失敗,定時(shí)器會(huì)準(zhǔn)時(shí)執(zhí)行(即使會(huì)有100ms的延遲也是夠了),這時(shí)候必然是小于2S的。
在iframe被攔截的情況下,我們可以使用window.location.href = URL scheme
來(lái)做兼容。
以上是“HTML5頁(yè)面中如何嘗試調(diào)起APP功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前題目:HTML5頁(yè)面中如何嘗試調(diào)起APP功能
網(wǎng)站網(wǎng)址:http://aaarwkj.com/article20/pcscjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、服務(wù)器托管、小程序開(kāi)發(fā)、網(wǎng)站導(dǎo)航、ChatGPT、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)