2016-11-15 36 views
2

我的网页检测到操作系统和浏览器,在iOS情况下,Safari将使用自定义URL方案启动我的应用程序。iOS 9.3.2自定义URL计划不从Safari中启动应用程序

它可以在我的测试设备上正常工作,但在iOS/9.3.2上使用Safari/9.0的用户遇到问题 - 链接无用!

是否不再支持自定义URL方案?我是否需要开始使用通用链接?

对于那些有兴趣,这里是JavaScript代码,我在iOS的浏览器使用(这是工作的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

自定义的URI方案一直以来,引进的不是好选择iOS 9.2。 Apple已经明确表示Universal Links是深度链接的首选方法。

我不知道任何可能导致Safari在9.0 - 9.3.2上执行的追溯更改没有任何在这种情况下(您至少应该会弹出一个错误消息),但这会继续在可预见的未来不被支持,您应该尽快启用并运行Universal Links。更多详情请见this blog post

相关问题