產品需求:分享出去的鏈接比如到微信朋友圈,微博的H5頁面,添加一個按鈕 open App 用來打開並啟動自己公司的APP (如果當前手機已經安裝自己公司的APP)
廢話少說直接上代碼:
<input type="button" value="從APP打開" onClick="openApp();"> <script language="javascript"> function openApp(){ var schemeUrl = 'app里即有的協議如: apps custom url schemes '; 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.href = '沒安裝APP時要跳轉的鏈接'; } else { alert('無法打開'); } },25); window.location.href = schemeUrl; } else if (navigator.userAgent.match(/android/i)) { var state = null; try { state = window.open(schemeUrl, '_blank'); } catch(e) {} if (state) { alert('無法打開'); window.close(); } else { window.location.href = '沒安裝APP時要跳轉的鏈接'; } } } </script>
apps custom url schemes 是什么呢?
其實就是你與APP約定的一個協議URL,你的IOS同事或Android同事在寫程序的時候會設置一個URL Scheme,
例如設置: URL Scheme :app
然后其他的程序就可以通過 URLString = app:// 調用該應用。
還可以傳參數,如:app://reaction/?uid=1
原理:500ms內,本機有應用程序能解析這個協議並打開程序,調用該應用;如果本機沒有應用程序能解析該協議或者500ms內沒有打開這個程序,則執行setTimeout里面的function,就是跳轉到你想跳轉的頁面。