欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用js判斷手機(jī)是否安裝某個app的多種方案

 更新時間:2017年02月13日 09:46:22   作者:尋一顆心  
這篇文章主要介紹了利用js檢測手機(jī)是否安裝某個app的多種方案,當(dāng)判斷后如果安裝了直接打開,如果有沒有安裝將自動跳轉(zhuǎn)到下載的界面,有需要的朋友可以參考借鑒,下面來一起看看吧。

前言

大家在日常開發(fā)的時候,經(jīng)常會遇到這樣的需求,通過檢測手機(jī),如果本地安裝了app那么直接打開,否則蘋果要跳轉(zhuǎn)到app-store,安卓則要跳到對應(yīng)的市場,下面來給大家介紹幾種解決的方案。

解決方案 一

//html代碼中 的 a 標(biāo)簽,以微信為例,默認(rèn)的是調(diào)用weixin scheme,去打開本機(jī)的微信,如果沒有則跳轉(zhuǎn)到相應(yīng)連接
    <a href="weixin://" rel="external nofollow" class="btn-download">立即打開</a>
  
    // 為btn-download 綁定事件,如果在500ms內(nèi),沒有解析到協(xié)議,那么就會跳轉(zhuǎn)到下載鏈接 
     var appstore, ua = navigator.userAgent;
  if(ua.match(/Android/i)){ 
   appstore = 'market://search?q=com.singtel.travelbuddy.android';
  }
  if(ua.match(/iphone|ipod|ipad/)){
   appstore = "https://itunes.apple.com/cn/app/wei-xin/id414478124?mt=8&ign-mpt=uo%3D4"; 
  }
  function applink(fail){ 
   return function(){ 
    var clickedAt = +new Date; 
    // During tests on 3g/3gs this timeout fires immediately if less than 500ms. 
    setTimeout(function(){ 
      // To avoid failing on return to MobileSafari, ensure freshness! 
      if (+new Date - clickedAt < 2000){ 
       window.location = fail; 
      } 
    }, 500);  
   }; 
  } 
  $('.icon-download, .btn-download')[0].onclick = applink(appstore);

解決方案二

通過在頁面中生成一個隱藏的iframe,iframe的src指向 app 協(xié)議,例如 weixin scheme,并監(jiān)聽onerror事件,意思是如果無法解析協(xié)議,就會觸發(fā)onerror事件,但是我嘗試了一下,未果。代碼如下,可參考一下。

// 頁面中有div#iframe-box 用來插入生成的iframe,還是以微信為例
     var ifm = document.createElement('iframe'), isInstalled;
  ifm.style.display = 'none';
  ifm.src = 'wixin://';
  ifm.onload = function(e){
   var e = e || window.event;
   e.preventDefault();
  }
  ifm.onerror = function(){
   //isInstalled = false;
   alert(1);
  }
  document.getElementById('iframe-box').appendChild(ifm);

    // 但這時的問題是,iframe的src成功解析到了協(xié)議,則會直接跳轉(zhuǎn),但是解析不到的話,也不會觸發(fā)error事件,這個還要繼續(xù)研究
    // 可以把上面的代碼,放到函數(shù)中,然后作為某個按鈕的響應(yīng)函數(shù)。

解決方案三

對于ios手機(jī),會有如下寫法

<meta name="apple-itunes-app" content="app-id=414478124" /> 

將上面代碼放到head中,根據(jù)name也會知道意思,app-id是微信的app-id,用ios手機(jī)看會看到提示,andriod比可以,結(jié)果自行實驗。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • JS判斷元素為數(shù)字的奇異寫法分享

    JS判斷元素為數(shù)字的奇異寫法分享

    JS判斷元素為數(shù)字的奇異寫法分享,需要的朋友可以參考下
    2012-08-08
  • js實現(xiàn)按鈕加背景圖片常用方法

    js實現(xiàn)按鈕加背景圖片常用方法

    這篇文章主要介紹了js實現(xiàn)按鈕加背景圖片常用方法,羅列了js事件觸發(fā)控制背景圖片、css樣式控制以及圖片按鈕三種方法,非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • 微信小程序中weui用法解析

    微信小程序中weui用法解析

    這篇文章主要介紹了微信小程序中weui用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • vue 集成騰訊地圖實現(xiàn)api(附DEMO)

    vue 集成騰訊地圖實現(xiàn)api(附DEMO)

    之前項目使用騰訊地圖,不利于開發(fā)者查找,這篇文章主要介紹了vue 集成騰訊地圖實現(xiàn)api,具有一定的參考價值,感興趣的可以了解下
    2021-07-07
  • JS pushlet XMLAdapter適配器用法案例解析

    JS pushlet XMLAdapter適配器用法案例解析

    這篇文章主要介紹了JS pushlet XMLAdapter適配器用法案例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 檢查JavaScript對象屬性是否存在的方法小結(jié)

    檢查JavaScript對象屬性是否存在的方法小結(jié)

    在前端開發(fā)面試,面試官提出了一個經(jīng)典的JavaScript問題:“在JavaScript中,如何檢查對象是否包含某個屬性?請你詳細(xì)介紹幾種不同的方法,并解釋它們的區(qū)別,”這個問題考驗?zāi)銓avaScript的基礎(chǔ)掌握情況,讓我們進(jìn)入這個面試場景,需要的朋友可以參考下
    2024-09-09
  • 詳解小程序rich-text對富文本支持方案

    詳解小程序rich-text對富文本支持方案

    目前小程序使用比較多的富文本方案一個是小程序自帶的rich-text組件,一個是wxPrase,本篇文章主要介紹了詳解小程序rich-text對富文本支持方案,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 基于BootStrap multiselect.js實現(xiàn)的下拉框聯(lián)動效果

    基于BootStrap multiselect.js實現(xiàn)的下拉框聯(lián)動效果

    當(dāng)option特別多時,一般的下拉框選擇起來就有點力不從心了,所以使用multiselect是個很好的選擇。在網(wǎng)上找了半天找到了解決方案,具體實現(xiàn)代碼大家參考下本文吧
    2017-07-07
  • js動態(tài)修改input輸入框的type屬性(實現(xiàn)方法解析)

    js動態(tài)修改input輸入框的type屬性(實現(xiàn)方法解析)

    本文是對js動態(tài)修改input輸入框的type屬性的實現(xiàn)方法。進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • js實現(xiàn)淘寶固定側(cè)邊欄

    js實現(xiàn)淘寶固定側(cè)邊欄

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)淘寶固定側(cè)邊欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評論