js判斷移動端是否安裝某款app

最近在作項目的wap版,有個需求就是,先判斷手機上是否有咱們的APP應用,若是有的話打開應用,沒有才跳轉到wap頁面。 
wap簡單來講就是運行在移動端瀏覽器上的網站。無論應用在什麼地方,總之就是瀏覽器唄,能夠經過JS來判斷本地是否有某應用,實現方式實際就是將http協議轉爲本地軟件協議。 
仍是直接貼代碼吧。javascript

 

<script language="javascript">
 if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
  var loadDateTime = new Date();
  window.setTimeout(function() {
   var timeOutDateTime = new Date();
   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同事在寫程序的時候會設置一個URL Scheme,
例如設置:
URL Scheme :app
而後其餘的程序就能夠經過URLString = app://  調用該應用。
還能夠傳參數,如:
app://reaction/?uid=1
原理:500ms內,本機有應用程序能解析這個協議並打開程序,調用該應用;若是本機沒有應用程序能解析該協議或者500ms內沒有打開這個程序,則執行setTimeout裏面的function,就是跳轉到你想跳轉的頁面。java

以上就是js判斷移動端是否安裝某款app的多種方法,但願對你們的學習有所幫助。react

相關文章
相關標籤/搜索