當用戶打開一個網站,我想以下兩種情形之一將發生:從網站重定向到Android應用程序?
- 如果應用mycoolapp安裝將用戶重定向到使用自定義URL方案mycoolapp應用://
- 如果應用程序未安裝,則保留在當前頁面上,而不發佈或重定向到未知頁面或錯誤彈出窗口。
案例1很容易,你可以使用下面的代碼:
window.location = "mycoolapp://";
如果安裝在設備上的應用程序這將工作。當應用程序未安裝時,它將用戶重定向到未知的空白頁面。
對於情況2我有一個使用iFrame的解決方案,該解決方案在iOS和原生Android瀏覽器上效果很好。它不適用於Android版Chrome。
var redirect = function (location) {
var iframe = document.createElement('iframe');
iframe.setAttribute('src', location);
iframe.setAttribute('width', '1px');
iframe.setAttribute('height', '1px');
iframe.setAttribute('position', 'absolute');
iframe.setAttribute('top', '0');
iframe.setAttribute('left', '0');
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;
};
redirect('mycoolapp://');
安裝應用程序時,它正在使用原生Android瀏覽器,但在Android版Chrome瀏覽器中沒有重定向。頁面上沒有任何反應。
我該如何重定向到在Android版Chrome上工作的應用程序,而不會在應用程序未安裝時重定向到空白頁?
編輯:我知道,你可以使用一個Intent
window.location = "intent://#Intent;package=com.mycoolapp;scheme=mycoolapp;launchFlags=268435456;end;";
這不是我想要的,因爲它啓動玩谷歌的應用程序頁面,如果沒有安裝的應用程序。有沒有一種方式,它不會重定向到谷歌播放?
Android上不使用「特殊」的計劃...使用意圖過濾HTTP方案......瀏覽器會問用戶使用瀏覽器或與您的應用程序(如果已安裝)完成操作 – Selvin 2014-09-03 11:39:59
@Selvin您能否爲您的想法發佈一個答案? – confile 2014-09-03 12:42:09
它與RGraham的回答相同 – Selvin 2014-09-03 12:42:39