1. 程式人生 > >JS判斷手機端是否安裝了某個客戶端APP應用

JS判斷手機端是否安裝了某個客戶端APP應用

轉自:http://blog.sina.com.cn/s/blog_bfa6e8830101cqea.html


最近在做專案的wap版,有個需求就是,先判斷手機上是否有我們的APP應用,如果有的話開啟應用,沒有才跳轉到wap頁面。
wap簡單來說就是執行在移動端瀏覽器上的網站。不管應用在什麼地方,總之就是瀏覽器唄,可以通過JS來判斷本地是否有某應用,實現方式實際就是將http協議轉為本地軟體協議。 還是直接貼程式碼吧。 如下:
<scriptlanguage="javascript">   if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)){
   var loadDateTime = new Date();    window.setTimeout(function() {      var timeOutDateTime = newDate();      if (timeOutDateTime - loadDateTime< 5000) {        window.location ="要跳轉的頁面URL";      } else {        window.close();      }    },    25);    window.location = " apps custom url schemes";
  } else if(navigator.userAgent.match(/android/i)){    var state = null;    try {      state = window.open("apps custom url schemes ",'_blank');     }catch(e) {}     if(state) {      window.close();     }else {      window.location ="要跳轉的頁面URL";    }  } </script>

apps custom url schemes 是什麼呢? 其實就是你與APP約定的一個協議URL,你的IOS同事或Android同事在寫程式的時候會設定一個URLScheme, 例如設定: URLScheme :app
然後其他的程式就可以通過URLString = app://  呼叫該應用。 還可以傳引數,如: app://reaction/?uid=1 原理:500ms內,本機有應用程式能解析這個協議並開啟程式,呼叫該應用;如果本機沒有應用程式能解析該協議或者500ms內沒有開啟這個程式,則執行setTimeout裡面的function,就是跳轉到你想跳轉的頁面。