js唤醒淘宝手机app
通過JS喚醒app(安卓+ios)
有需求說要通過頁面按鈕喚醒app,或者手機上沒有這款app跳轉到商店,然后剛開始也是查了資料的,結果發現一頭霧水,不過最后還是搗鼓出來了,當然也參考了前人分享的經驗,下面我就將方法整理一下:
首先明確一下目的,是要在分享出去的html頁面,通過js操作喚醒app或者打開商店,那么第一步就應該先判斷當前的環境,這里我附上詳細的判斷方法,通用的
var browser = {
????????versions: function() {
??????????????????var u = navigator.userAgent,
????????????????????????app = navigator.appVersion;
??????????????????return {
????????????????????????????trident: u.indexOf('Trident') > -1,????????????????????????
????????????????????????????presto: u.indexOf('Presto') > -1,??????????
????????????????????????????webKit: u.indexOf('AppleWebKit') > -1,?
????????????????????????????gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,????????
?????????????????????????????mobile: !!u.match(/AppleWebKit.*Mobile.*/),????????
?????????????????????????????ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),?
?????????????????????????????android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,?
?????????????????????????????iPhone: u.indexOf('iPhone') > -1,??????????
?????????????????????????????iPad: u.indexOf('iPad') > -1,??????
?????????????????????????????webApp: u.indexOf('Safari') == -1,??????????
?????????????????????????????souyue: u.indexOf('souyue') > -1,
?????????????????????????????superapp: u.indexOf('superapp') > -1,
?????????????????????????????weixin:u.toLowerCase().indexOf('micromessenger') > -1,
?????????????????????????????Safari:u.indexOf('Safari') > -1
???????????????????};
??????????}(),
???????????????????language: (navigator.browserLanguage || navigator.language).toLowerCase()
};
這里用到兩個判斷,一個ios一個安卓
if (browser.versions.ios) {
?????????????//你的代碼
}else if (browser.versions.android){
?????????????//你的代碼
}
那么接下來就應該判斷當前手機上是否有安裝某款應用,但是要知道js是無法判斷手機上是否安裝了哪款app的,所以有app打開app,沒有app跳轉到商店就可以這么做,js打開ios系統app的方法是這樣的,拿淘寶為例:
taobao://
那么同理安卓的方法也是一樣的,只不過打開app的協議不同,這個對應的打開app的協議是你們ios和安卓開發的小伙伴提供給你的,接下來的原理就是嘗試發起打開app的請求,如果有提示是否在某款app中打開,那就可以直接打開了,如果打不開那么我們就要做另外一件事情了
if (browser.versions.ios) {
??????????window.location.href = "taobao://";
??????????setTimeout(function(){
????????????????????window.location.href = "你的app在商店中的地址";
????????????????????window.location.href = "你的app在商店中的地址";??//為什么要加兩遍我下面會說到
??????????},2000)
}else if (browser.versions.android){
??????????window.location.href = "taobao://**";
??????????setTimeout(function(){
????????????????????window.location.href = "你的app的下載地址";
??????????},2000)
}
當然為什么要加定時器,相信大家也都知道,因為打開app是需要時間的,而js代碼瞬間就執行完畢了,當然這里還有幾個坑,ios系統第一次window.location.href嘗試打開app有時候會彈一下是否在某款app中打開之后馬上跳到商店,為了解決這個問題我加了兩遍window.location.href。
總結
以上是生活随笔為你收集整理的js唤醒淘宝手机app的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统提示 api-ms-win-crt-
- 下一篇: Vue错误03:Property or