瀏覽器內(nèi)喚醒APP趨于完美的解決方案

Open App.png

老大讓研究一個(gè)新功能,H5頁(yè)面內(nèi)點(diǎn)擊喚醒APP,開(kāi)始了艱苦的長(zhǎng)途跋涉,一步一個(gè)坑?。?!
1、該如何喚醒APP;
2、如何檢測(cè)是否有APP;
看看前輩們是怎么做的,喚醒APP,研究發(fā)現(xiàn),可以通過(guò)類似于url的形式跳轉(zhuǎn)來(lái)喚醒APP,在原生中被命名為schema協(xié)議,

taobao://m.taobao.com   //淘寶的喚醒地址

咦,手機(jī)上有淘寶,地址也配好了,走起試一下(安卓),打開(kāi)了,以為全世界都亮了,才發(fā)現(xiàn)只是一點(diǎn)星星之火,借鑒前輩們的解決方案,發(fā)現(xiàn)不能檢測(cè)到手機(jī)內(nèi)有沒(méi)有安裝APP,喚醒存在各種兼容性問(wèn)題,主流的使用兩種方法,核心思想是點(diǎn)擊喚醒按鈕,進(jìn)行跳轉(zhuǎn),如果能進(jìn)行跳轉(zhuǎn)則跳轉(zhuǎn),否則跳轉(zhuǎn)到下載頁(yè)面。
1、動(dòng)態(tài)創(chuàng)建iframe標(biāo)簽 (安卓解決方案)

var ifa = document.creatElement('iframe');
ifa.src = url;                              //APP的schema協(xié)議
ifa.style.display = 'none';
setTimeout(function(){
  document.body.removeChild(ifa);
  window.location.href = 'download.html'    //APP下載頁(yè)
},1000)

通過(guò)動(dòng)態(tài)生成iframe標(biāo)簽的這種方案,在ios9+里沒(méi)有響應(yīng);
2、window.location.href跳轉(zhuǎn) (IOS解決方案)

window.location.href = url;                 //APP的schema協(xié)議
setTimeout(function(){
  window.location.href = 'download.html'    //APP下載頁(yè)
},2000)

IOS系統(tǒng)上安裝APP,提示彈框,打開(kāi)APP,當(dāng)手機(jī)里未下載APP,safari會(huì)提示錯(cuò)誤鏈接,默認(rèn)2秒后跳轉(zhuǎn)下載頁(yè)(系統(tǒng)彈框無(wú)法避免);
當(dāng)切換到app返回到H5頁(yè)面發(fā)現(xiàn)仍然跳轉(zhuǎn)到了下載頁(yè)面,該怎么辦
visibilitychange H5新出的接口 判斷頁(yè)面狀態(tài) 主要是為了游戲開(kāi)發(fā)人員,在我們玩游戲的過(guò)程中,我們會(huì)因?yàn)樾畔?、電話等?wèn)題退出游戲頁(yè)面,使其進(jìn)入后臺(tái),這個(gè)時(shí)候判斷進(jìn)入此狀態(tài),暫停游戲。目前除了safari不支持,其他瀏覽器都支持。

https://developer.mozilla.org/zh-CN/docs/Web/Events/visibilitychange API文檔

document.addEventListener('visibilitychange webkitvisibilitychange',function(){
  var tag = document.hidden || document.webkitHidden;
  tag ? clearTimeout(timer):'';
})

window.onpagehide = function(){
  clearTimeout(timer);
}

微信內(nèi)不能喚醒APP的,微信將schema協(xié)議進(jìn)行屏蔽,只對(duì)合作伙伴進(jìn)行白名單開(kāi)放.


寫(xiě)的不好的地方還望大家及時(shí)反饋與糾正,本著共同學(xué)習(xí)與進(jìn)步宗旨不斷前進(jìn)?。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容