簡體   English   中英

在iPhone上使用Safari確定已安裝的應用

[英]Determine an installed app using Safari on iPhone

我想使用iPhone Safari上的自定義URL方案確定已安裝的應用程序。

您可能認為不可能做到這一點,但是JavaScript幫助我弄清楚了這一點。

  <script>(function(){

var fallbackLink = '<?=$info['failed_url']?>'+window.location.search+window.location.hash;

var isiOS = navigator.userAgent.match('iPad') || navigator.userAgent.match('iPhone'),
    isAndroid = navigator.userAgent.match('Android');

if (isiOS || isAndroid) {
  document.getElementById('loader').src = '<?=$info['scheme']?>://'+window.location.search+window.location.hash;

  fallbackLink = isAndroid ? '<?=$info['failed_url']?>' :
                             '<?=$info['failed_url']?>' ;
}
window.setTimeout(function (){ window.location.replace(fallbackLink); }, 1000);

})();</script>

這是我的劇本。

我已經知道iPhone應用程序的自定義URL方案。 如果iPhone上存在該應用程序,它將成功啟動該應用程序。 但是,如果iPhone沒有該應用程序,它將重定向到另一個頁面。

我將某些代碼放在失敗的網頁上,以注意到用戶沒有該應用程序。 在找到這個之前,我的計划是完美的。

即使超時后在iPhone上啟動了應用程序,JavaScript重定向仍然有效。

如果iPhone啟動了應用程序,是否可以停止JavaScript?

謝謝。

當窗口失去焦點時,您始終可以取消超時。

var countdown = window.setTimeout(function (){
    window.location.replace(fallbackLink);
}, 1000);

window.addEventListener("blur", function (){
    window.clearTimeout(countdown);
}, false);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM