在HTML打開已安裝的App,未安裝跳轉到對應的下載鏈接

借鑒 ?HTML中判斷手機是否安裝某APP,跳轉或下載該應用

function lookApp () {var ua = navigator.userAgentvar isAndroid = /(Android);?[\s/]+([\d.]+)?/.test(ua)var isIpad = /(iPad).*OS\s([\d_]+)/.test(ua)var isIpod = /(iPod)(.*OS\s([\d_]+))?/.test(ua)var isIphone = !isIpad && /(iPhone\sOS)\s([\d_]+)/.test(ua)var isWechat = /micromessenger/i.test(ua)var isAlipay = /alipayclient/i.test(ua)if (isIphone) {// IPhone  
  // 默認跳轉App協議 abc:// 后面的是跟App約定好攜帶的參數,這個根據實際情況添加或者刪除window.location.href = "abc://abc.com?id=" + idsetTimeout(function(){
    // 未安裝App即跳轉IPhone商店window.location
= 'https://itunes.apple.com/cn/app/aaaaaaaa' //如果超時就跳轉到app下載頁},500);} else if (isAndroid) {// Android
// 默認跳轉App協議
window.location.href = "abc://abc.com?id=" + id
setTimeout(function(){
// 未安裝App即跳轉Android商店
    window.location = 'http://a.app.qq.com/o/simple.jsp?aaaaaa' //如果超時就跳轉到app下載頁
},500)
  }
}

首先利用navigator.userAgent 判斷出手機設備類型

根據上面分別和IOS、Android約定好的 ? apps custom url schemes (abc://) ?嘗試打開App(微信瀏覽器里面無法直接打開App,在手機瀏覽器可以正常使用

并延長0.5秒自動跳轉到對應的商店下載鏈接

?

轉載于:https://www.cnblogs.com/webBlog-gqs/p/9519316.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250854.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250854.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250854.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

javascript --- 自定義數組的反序函數

想寫一個自定義的_reverse函數,其作用是將傳入的數組進行部分反序. 效果如下: 輸入[1,2,3,4,5,6,7,8,9] 第一個將2~4個位置的數字反序 第二個將2~6個位置的數字反序. // js function _reverse(arr, s, e) {arr arr.join().slice(0,s) arr.join().slice(s,e).split().revers…

21 Fragment和短語法應用

React.Fragment jsx語法&#xff0c;相當于document.createDocumentFragment()創建文檔碎片容器&#xff0c;優化渲染解決了沒有根節點的問題<></>這種短語法也會聲明React.Fragment但短語法不支持keyReact.Fragment只支持key屬性&#xff0c;其余屬性如事件等不支…

201521123004《軟件工程》個人閱讀作業1

task1Task2: 201521123004 林藝如 博客&#xff1a;https://www.cnblogs.com/dabaolyr/ 碼云&#xff1a;https://gitee.com/dabao_lyr Task3&#xff1a;完成博客-閱讀與思考 閱讀參考材料&#xff0c;并回答下面幾個問題&#xff1a; &#xff08;1&#xff09;回想一下你初入…

在sql當中為了讓數據做緩存做with as的操作

今天看別人的代碼&#xff0c;突然發現之前理解的sql的with as的用法有新的理解。 之前理解的with as只是想著做單表的union all 操作時才使用&#xff0c;今天發現在可以使用逗號做分割&#xff0c;做緩存不同的表數據。 下面的例子如下&#xff1a; WITH t1 AS (SELECT file_…

javascript --- 從數組中,找出比給定元素大一丁點的元素

目標如下: 從數組[1,3,2,4,5,6,7]中找到比第1個位置大一丁點的元素 function _findIndex(arr, j){let k -1;let key arr[j];for(let i j; i< arr.length; i) {if(arr[i] > key) {if( k ! -1){if(arr[i] < arr[k]) {k i;}} else {k i;}}}return k } let arr [1,…

22 React高階組件

搭建服務端 yarn add express yarn add nodemon 在server目錄下 npm init -y // 增加dev腳本"scripts": {"dev": "nodemon ./index.js"},引入 git HOC High Order Component 高階組件&#xff0c;是組件的抽象HOC不是React提供的API&#xf…

PAT (Advanced Level) 1140~1143:1140模擬 1141模擬 1142暴力 1143 BST+LCA

1140 Look-and-say Sequence&#xff08;20 分&#xff09; 題意&#xff1a;觀察序列D, D1, D111, D113, D11231, D112213111, ...&#xff0c;顯然后一個串是對前一個串每一小段連續相同的字母及其個數的描述。例如&#xff0c;D112213111是對D11231的描述&#xff0c;原因是…

AngularJS:表達式

ylbtech-AngularJS&#xff1a;表達式1.返回頂部 1、AngularJS 表達式 AngularJS 使用 表達式 把數據綁定到 HTML。 AngularJS 表達式 AngularJS 表達式寫在雙大括號內&#xff1a;{{ expression }}。 AngularJS 表達式把數據綁定到 HTML&#xff0c;這與 ng-bind 指令有異曲同…

23 Refs的應用場景與選用思考

Refs含義 允許訪問真實DOMReact數據流&#xff1a;通過props來實現父子組件的交互Refs允許強制修改子組件 // 1. 構造器離添加實例屬性 this.ref React.createRef() // 2. 組件上綁定ref ref{this.ref} // 3. 使用&#xff1a;this.ref.currentinput class MyInput extends…

flutter --- Windows下環境配置

https://flutter.liulongbin.top/ https://www.cnblogs.com/zxsh/archive/2018/04/16/8859048.html

省選模擬賽記錄(越往下越新哦~~~)

LOG 模擬賽第一次見尼瑪這么給數據范圍的……開考有點困,迷迷糊糊看完了三道題,真的是像老呂說的那樣,一道都不會……思考T1,感覺有點感覺,但是太困了,就先碼了暴力,發現打表可以50分,于是就大力打了一波表……轉身T3,碼出25分的O(n^2)算法,然后不會了……去了T2,碼出35分的O(n…

MFC-CString與int互相轉化

1. CString轉int int n 0; CString str _T("123");n _ttoi(str); 2. int轉CString int n 0; CString str; str.Format(_T(%d) , n); 參考&#xff1a;MFC中 CString與int的轉化 vs2010 中 MFC::CString 如何和int相互轉化 轉載于:https://www.cnblogs.com/Tang-…

flutter --- 使用dio包

打開pubspec.yaml找到dependencies在最下面添加 dio: ^1.0.9ctrl s 之后,會自動下載依賴 使用: // get請求 import package:dio/dio.dart; Dio dio new Dio(); var response await dio.get("/test", data:{"id":12, "name":"marron&qu…

24 React.createRef()用法細節分析

通過React.createRef → ref對象通過元素的ref屬性可以附加到React元素上一般通過構造器中給this的屬性賦值一個ref&#xff0c;方便整個組件使用ref只要傳遞到react元素中&#xff0c;就可以利用ref的current屬性訪問到該真實DOM節點ref在componentDidMount和componentDidUpda…

對于下一代互聯網的暢想

去中心化 每臺客戶機都將成為服務器, 爭取對資源的充分利用 顯示屏化 運算功能交給云服務器, 每臺客戶機的主要任務是顯示 交互 聯網而不是進行運算, 爭取對資源的盡可能節省 優點 可以大大降低客戶機的成本, 減少資源的浪費, 而且使客戶機之間的區別變得更小(因為都主要負責顯…

npm install mysql --save-dev

npm install X: 會把X包安裝到node_modules目錄中不會修改package.json之后運行npm install命令時&#xff0c;不會自動安裝Xnpm install X –save: 會把X包安裝到node_modules目錄中 會在package.json的dependencies屬性下添加X 之后運行npm install命令時&#xff0c;會自動…

dart --- 環境配置

1.進入官網下載SDK http://www.gekorm.com/dart-windows/ 2.運行下載的EXE文件.下一步下一步… 3.打開小黑框,輸入: dart --version VSCode關于Dart的插件: DartCode Runner 插件安裝好后,需重啟VSCode. 新建 index.dart,輸入以下代碼 main () {print("Hello Dart…

Shiro 登錄、退出、校驗是否登錄涉及到的Session和Cookie

前提 我們的使用的是DefaultWebSessionManager而不是ServletContainerSessionManager。這就意味著前者的session為Shiro的&#xff0c;后者的session為Tomcat的。 登錄 DefaultWebSessionManager調用start()方法(在AbstractNativeSessionManager中)創建Session&#xff08;Simp…

25 Refs轉發機制與在高階組件中的使用

將子節點的ref暴露給父節點 16.3以上 Refs轉發&#xff0c;將ref自動通過組件傳遞給子組件 1. 在父組件創建ref對象 2. 給子組件賦值ref 3. 通過React.forward向子組件轉發ref屬性 4. 父組件的ref對象指向子組件dom 5. ref參數只有在 React.forwardRef 組件內定義時可接受con…

26 JSX深度剖析與使用技巧

React對JSX的處理 React.createElement有三個參數&#xff1a;標簽類型&#xff0c;屬性集合&#xff0c;子元素 JSX其實是React.createElement函數調用的語法糖 JSX → 編譯 → React.createElement調用形式 class App extends React.Component {render() {return (<div cl…