做項目的時候,項目中有個需求,需要通過網頁打開app,聽到這個功能,我先是蛋疼了一會,但是在網上查了一下資料發現原理其實很簡單,本質就是通過瀏覽器輸入我們本地android程序的路徑,不過這個路徑需要我們在android中AndroidManifest.xml聲明一下
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
//配置可以通過瀏覽器啟動Intent
android:scheme="zhu" /> //自己定義的協議
這個地方配置了后,我們可以試到在瀏覽器上輸入zhu://splash
這會自動的跳轉到搜索頁面,這是因為瀏覽器如果發現地址的前綴不是http等常見的協議就會自動跳到搜索的頁面,某些還會在前面自動加上http。
既然這樣沒辦法,那我就直接寫了個js代碼來實現這跳轉
window.location = "zhu://splash";
訪問js頁面
項目的需求之后又變了一下,不僅要打開我們的App還要判斷當沒有App的時候自動下載它
代碼如下:
(function(){
var t;
function openclient() { //判斷在規定時間內是否可以打開app,如果超時就代碼沒有安裝對應的app 跳到下載頁面。
var startTime = Date.now();
window.location = "zhu://splash";
var t = setTimeout(function() {
var endTime = Date.now();
if (endTime - startTime < 800) {
window.location = “你的下載地址”;
}
}, 600);
window.onblur = function() {
clearTimeout(t);
}
}
window.addEventListener("DOMContentLoaded", function(){ //添加監聽事件
openclient();
}, false);
})()