2016-11-15 30 views
2

ウェブページがOSとブラウザを検出し、iOS Safariの場合、カスタムURLスキームを使用してアプリが起動されます。iOS 9.3.2 SafariからカスタムURLスキームが起動しない

テストデバイスで正常に動作しますが、iOS/9.3.2でSafari/9.0を使用しているユーザーに問題が発生しています。リンクは何もしません。

カスタムURLスキームはサポートされなくなりましたか?代わりにユニバーサルリンクを使用する必要がありますか?興味のある方のため

は、ここで私は(時間の99%を働いている)iOSのブラウザで使用Javascriptのコードは次のとおりです。

var timer; 
var heartbeat; 
var lastInterval; 

window.addEventListener("pageshow", function(evt){ 
    clearTimers(); 
}, false); 

window.addEventListener("pagehide", function(evt){ 
    clearTimers(); 
}, false); 

function getTime() { 
    return (new Date()).getTime(); 
} 

// For all other browsers except Safari (which do not support pageshow and pagehide properly) 
function intervalHeartbeat() 
{ 
    var now = getTime(); 
    var diff = now - lastInterval - 200; 
    lastInterval = now; 
    if(diff > 1000) 
    { // don't trigger on small stutters less than 1000ms 
     clearTimers(); 
    } 
} 

function clearTimers() 
{ 
    clearTimeout(timer); 
    clearTimeout(heartbeat); 
} 

function intervalHeartbeat() 
{ 
    if (document.webkitHidden || document.hidden) 
    { 
     clearTimers(); 
    } 
} 

function launch() 
{ 
    lastInterval = getTime(); 
    heartbeat = setInterval(intervalHeartbeat, 200); 
    timer = setTimeout(function() 
    { 
     logErrorToMyServer(); 
    }, 2000); 

    //Launch app via custom URL scheme 
    window.location = "myapp://"; 
} 

答えて

0

カスタムURIスキームはの導入以来、良くないオプションとなっていますiOS 9.2。 Appleは、ユニバーサルリンクがディープリンクの好ましいアプローチだということを明確にしました。

私は9.0のSafariを引き起こしてしまう任意の遡及変更を認識していないよ - (あなたは、少なくともエラーポップアップを取得しなければならない)、このような状況で何もしないように9.3.2が、これは継続されます近い将来サポートされなくなる可能性があります。できるだけ早くUniversal Linksを稼働させる必要があります。詳細はthis blog postで入手できます。

関連する問題