以下僅展示最簡單的範例及關鍵程式碼
由於硬體條件有限,僅測試了Android 下的情況
在HBuilder 建立的移動APP 專案下有manifest.json 文件,在裡面加入schemes,schemes 中的值你喜歡設定成什麼就什麼吧。
這個時候,你需要一個簡單 web 系統,能提供一個簡單的 web 頁面供手機瀏覽器存取。
這個做過 Java 的人都懂,不詳說了。
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"><head><meta charset="utf-8" /> <title>文档标题</title> </head> <body> <p style="font-size: 68px;"> <a href="javascript:open_or_download_app();">打开APP</a> <span id="device"></span> </p> <script type="text/javascript"> //<![CDATA[ function open_or_download_app() { var device = document.getElementById("device"); if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) { device.innerHTML = "ios设备"; // 判断useragent,当前设备为ios设备 var loadDateTime = new Date(); // 设置时间阈值,在规定时间里面没有打开对应App的话,直接去App store进行下载。 window.setTimeout(function() { var timeOutDateTime = new Date(); if (timeOutDateTime - loadDateTime <2200) { window.location = "xxxxxxxx"; // APP下载地址 } else { window.close(); } },2000); window.location = "apptest://apptest"; //ios端URL Schema } else if (navigator.userAgent.match(/android/i)) { device.innerHTML = "Android设备"; // 判断useragent,当前设备为Android设备 // 判断useragent,当前设备为ios设备 var loadDateTime = new Date(); // 设置时间阈值,在规定时间里面没有打开对应App的话,直接去App store进行下载。 window.setTimeout(function() { var timeOutDateTime = new Date(); if (timeOutDateTime - loadDateTime < 2200) { window.location = "xxxxxxxx"; // APP下载地址 } else { window.close(); } },2000); window.location = "apptest://apptest"; // Android端URL Schema } } //]]> </script> </body> </html>
Android 的 URL Schema 寫成 “你設定的Schema://你設定的Schema” 即可存取。 IOS 的和這個不同。 URL Schema 的詳解自行百度,你會有更深的理解。
根據參考,即使在後台開啟了 APP,JS 仍會執行一段時間,大概是 600 - 1000 毫秒,所以至少也要設定定時調度大於 1 秒,這樣比較有保證。
window.setTimeout(function() {},2000); // 需要设置大一点,才有效果,否则会始终执行
接下來就可以打包 APP 安裝到手機上進行測試,也可以刪除 APP,比較兩次的結果。
IOS 的有條件再補上
以上是透過手機瀏覽器開啟APP或跳到下載頁面的實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!