我的网页会检测操作系统和浏览器,如果是iOS,Safari会使用自定义网址方案启动我的应用。
它在我的测试设备上工作正常,但我发现在iOS / 9.3.2上使用Safari / 9.0的用户存在问题 - 该链接根本无效!
是否不再支持自定义网址方案?我是否需要开始使用通用链接?
对于那些感兴趣的人,这里是我在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://";
}
答案 0 :(得分:0)
自iOS 9.2推出以来,自定义URI方案一直是一个不太好的选择。 Apple肯定明确表示Universal Links是深度链接的首选方法。
我不知道在这种情况下会导致Safari在9.0 - 9.3.2上执行 nothing 的任何追溯性更改(至少应该会出现错误弹出窗口) ),但在可预见的将来,这将继续得不到支持,您应该尽快启动并运行Universal Links。有关详细信息,请参见this blog post。