瀏覽器喚起APP的功能應(yīng)該很常見了纱烘,觀察發(fā)現(xiàn)雳灵,各大APP在這方面沒有一個完美的解決方案。分享下我們的解決方案糊肠。需求是這樣的:點(diǎn)擊一個連接辨宠,如果已經(jīng)安裝了這款app則呼起,跳轉(zhuǎn)到指定頁面货裹,如果沒有安裝則跳觸屏的指定頁嗤形,觸屏沒有該頁面,跳轉(zhuǎn)到下載頁弧圆。
思路:APP內(nèi)添加scheme赋兵,安裝app到手機(jī)時笔咽,同時在手機(jī)上注冊一個這個scheme URL。在系統(tǒng)需跳轉(zhuǎn)到這個URL霹期,如果手機(jī)上存在這個URL則會呼起app叶组,如果沒有則不會做任何事情。?
Android端的配置
JS 實(shí)現(xiàn)
JS端實(shí)現(xiàn)
JS是沒有辦法判斷當(dāng)前設(shè)備有沒有安裝APP的历造,所以甩十,在打開喚起鏈接100ms(ios9 3500ms)以后,打開備選鏈接吭产。
存在問題:
1.騰訊系A(chǔ)PP內(nèi)打不開侣监,因?yàn)轵v訊阻止了scheme方式的跳轉(zhuǎn)。
2. 在IOS9+臣淤,未安裝APP的設(shè)備橄霉,一進(jìn)來會彈出一個“無法打開網(wǎng)頁”的彈框,原因是喚起鏈接沒有響應(yīng)荒典。
解決辦法(未使用):
安卓端目前沒方案酪劫,ios端通過通用鏈接可以解決,也就順帶解決了問題2寺董。
通用鏈接原理:
在網(wǎng)站根目錄下放置配置文件覆糟,ios會去下載這個配置文件。當(dāng)用戶方位https://www.jinhui.com/gotoPage時遮咖,開打我們的APP滩字。這種方法因?yàn)槭莌ttp不會被微信攔截。