菜鸟教程小白 发表于 2022-12-11 18:04:04

javascript - iOS 9.3.2 自定义 URL 方案未从 Safari 启动应用程序


                                            <p><p>我的网页会检测操作系统和浏览器,如果是 iOS,Safari 将使用自定义 URL 方案启动我的应用程序。</p>

<p>它在我的测试设备上运行良好,但我发现用户在 iOS/9.3.2 上使用 Safari/9.0 时出现问题 - 该链接根本不起作用!</p>

<p>是否不再支持自定义 URL 方案?我需要改用通用链接吗?</p>

<p>对于那些感兴趣的人,这里是我在 iOS 浏览器中使用的 Javascript 代码(99% 的时间都在工作):</p>

<pre><code>var timer;
var heartbeat;
var lastInterval;

window.addEventListener(&#34;pageshow&#34;, function(evt){
    clearTimers();
}, false);

window.addEventListener(&#34;pagehide&#34;, 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 &gt; 1000)
    { // don&#39;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 = &#34;myapp://&#34;;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>自 iOS 9.2 推出以来,自定义 URI 方案一直不是一个好的选择。 Apple 明确表示,通用链接是深度链接的首选方法。</p>

<p>我不知道有任何追溯性更改会导致 9.0 - 9.3.2 上的 Safari 在这种情况下<em>什么都不做</em>(您至少应该得到一个错误弹出窗口),但在可预见的将来,这将继续不受支持,您应该尽快启动并运行 Universal Links。更多详情请访问 <a href="https://blog.branch.io/ios-9.2-deep-linking-guide-transitioning-to-universal-links" rel="noreferrer noopener nofollow">this blog post</a> .</p></p>
                                   
                                                <p style="font-size: 20px;">关于javascript - iOS 9.3.2 自定义 URL 方案未从 Safari 启动应用程序,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/40606743/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/40606743/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: javascript - iOS 9.3.2 自定义 URL 方案未从 Safari 启动应用程序