需求
為了提高轉(zhuǎn)化率蚤认,需要在分享頁面米苹,直接調(diào)起原生app,如果原生沒有安裝砰琢,跳轉(zhuǎn)到下載頁面
普通瀏覽器
一般是通過Scheme跳轉(zhuǎn)
網(wǎng)頁端
function isInstalled(){
var the_href=$(".down_app").attr("href");//獲得下載鏈接
window.location.href="apps custom url schemes";//打開某手機上的某個app應用
setTimeout(function(){
window.location.href=the_href;//如果超時就跳轉(zhuǎn)到app下載頁
},500);
}
原生端
內(nèi)部用的是Arouter進行分發(fā)
<activity android:name=".routeInterceptor.SchemeFilterActivity">
<!-- Schame -->
<intent-filter>
<data
android:host="m.gxyj.com"
android:scheme="native" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<!-- App Links -->
<!-- Android M 開始全面支持蘸嘶,需要網(wǎng)頁端有個簽名驗證(Android M + 驗證 需要使用https) -->
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="m.gxyj.com"
android:scheme="http" />
<data
android:host="m.gxyj.com"
android:scheme="https" />
</intent-filter>
</activity>
經(jīng)測試,可以成功陪汽,但是存在一個兼容性問題训唱,部分機型頁面會顯示所請求的地址有錯等,沒能跳轉(zhuǎn)到app下載頁面挚冤。網(wǎng)上有解決辦法說的是:將setTimeOut的時間縮短况增,我這里設(shè)置的是500ms,覺得時間有點長了训挡,那么我就設(shè)置30ms澳骤;
微信瀏覽器
微信瀏覽器(同QQ),屏蔽了使用Scheme方法調(diào)起本地App,據(jù)說只有少部分白名單(深度合作澜薄,類似京東)
下面提供兩種降級解決方案:
應用寶
直接跳轉(zhuǎn)到應用寶頁面为肮,應用寶能夠判斷用戶是否安裝,如果安裝了肤京,直接應用點擊打開弥锄,未安裝,直接在應用寶里面去下載App
缺點:只能打開App首頁蟆沫,無法具體到具體的頁面籽暇,還有一個就是要跳到應用寶界面,始終感覺有點不爽
優(yōu)點:不用考慮兼容性問題
誘導用戶用瀏覽器打開(類似淘寶)
缺點:需要多操作一步饭庞,有些用戶可能不太愿意
優(yōu)點:可以跳轉(zhuǎn)到任意界面