避免iOS9中url方案重定向的确认对话框

时间:2015-10-20 17:01:09

标签: javascript safari ios9 url-redirection url-scheme

要从Safari打开本机应用,我们正在使用类似myapp://do/something的网址方案重定向。

我知道至少有两种方法可以实现这个目标:

  1. 插入iframe,其中src属性等于所需的网址(仅适用于 iOS8 ,已停止在iOS9上运行)
  2. 用所需的网址替换window.location.href属性(适用于 iOS8和iOS9
  3. 这两种方式适用于 iOS8 ,并且可以立即将用户重定向到已安装的应用程序,而无需任何确认对话框。但是从iOS9开始 Safari开始显示确认对话框,以确保用户真的想要打开一个应用程序:

    enter image description here

    屏幕截图上的代码非常简单:

    <!DOCTYPE html>
    <html>
    <head></head>
    <body>
        <script>
            window.location.href = 'fb://';
        </script>
    </body>
    </html>
    

    我发现Apple网站上没有任何关于此更改的官方说明。在我看来,我们无法对这种行为做任何事情。

    问题:有人已经遇到过这个问题吗?我们如何避免在Safari中使用此确认框?

1 个答案:

答案 0 :(得分:4)

添加了确认对话框,以解决许多已注册iOS URL方案的应用中的已知漏洞。它可以防止恶意网页调用导致应用程序代表用户在他们不知情的情况下进行交易的URL方案。我不知道有任何方法可以禁用它。

有关此漏洞的更多详细信息,请参阅此BSides Las Vegas演示文稿: http://www.irongeek.com/i.php?page=videos/bsideslasvegas2014/pg10-ios-url-schemes-omg-guillaume-k-ross