H5喚起app

H5喚起app

1.判斷是否在微信中打開

不管是在哪一個平臺的客戶端Android/IOS,在微信的平臺上訪問都有一個問題,那就是沒法啓動客戶端,這是微信爲了安全性考慮的限制,android這邊屏蔽schema協議,除非公司是微信的夥伴加入了白名單才能使用,IOS系統能夠去訪問app對應appstore的下載頁,可是微信常常屏蔽appstore的這個網址,進而訪問不到。比較方便的作法就是在微信瀏覽器中,不管是IOS仍是android都去應用寶的下載(IOS 這邊最後會到appstore中)頁面打開。html

var agent = navigator.userAgent || ''
var isWx = /micromessenger/i.test(agent)
if(isWx){
    //微信,提示用戶用瀏覽器打開
}else{
    //非微信
}

js的test() 方法用於檢測一個字符串是否匹配某個模式.android

RegExpObject.test(string)   
//string爲要檢測的字符串。
//若是字符串 string 中含有與 RegExpObject 匹配的文本,則返回 true,不然返回 false。

2.判斷是否爲iOS

var isIOS = /iPhone|iPad|iPod/i.test(agent)   //返回true/false

3.喚起app

H5啓動APP本質上是經過URL scheme打開APP,一個APP能夠設置一個或多個打開本身的URL scheme,瀏覽器去訪問某一個APP的URL scheme,而後若系統安裝有這個APP,則會請求權限去打開這個APP。ios

其實也算是瀏覽器app打開另外一個app,iOS就可使用 UIApplication 的 canOpenUrl 方法來檢測URL scheme 是否能打開對應的APP,而android也是相似的方式。瀏覽器

固然若是JS跳轉URL scheme沒有反應,也意味着這個手機沒有裝這個app。安全

<a class='btn'>打開app</a>

若是須要跳轉到app指定頁面,在URL scheme後面再加一個url便可(URL scheme及url由app開發人員提供。)微信

if (isIOS) {
    $('.btn').attr('href','BonDayApp://' + url);
} else {
    $('.btn').attr('href','bondayapp://bonday.com/scheme?' + url);
}
相關文章
相關標籤/搜索