私の Web ページは OS とブラウザーを検出し、iOS の場合、Safari はカスタム URL スキームを使用して私のアプリを起動します。
テスト デバイスでは正常に動作しますが、iOS/9.3.2 で Safari/9.0 を使用しているユーザーに問題が発生しています。リンクは単に何もしません。
カスタム URL スキームはサポートされなくなりましたか? 代わりにユニバーサル リンクの使用を開始する必要がありますか?
興味のある方のために、私が iOS ブラウザーで使用している Javascript コードを以下に示します (99% の確率で動作しています)。
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://";
}