【问题标题】:Avoid confirmation dialog for url scheme redirection in iOS9避免 iOS9 中 url 方案重定向的确认对话框
【发布时间】:2016-01-19 11:04:09
【问题描述】:

要从 Safari 中打开本机应用程序,我们使用 url 方案重定向,例如 myapp://do/something

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

  1. 插入iframe,src 属性等于所需的url(仅在iOS8 上工作,在iOS9 上停止工作)
  2. window.location.href 属性替换为所需的网址(适用于iOS8 和iOS9

这两种方式都适用于 iOS8 并立即将用户重定向到已安装的应用程序,而无需任何确认对话框。但是从 iOS9 开始,Safari 开始显示确认对话框,以确保用户确实想要打开应用程序:

上面截图页面上的代码非常简单:

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

我在苹果的网站上没有找到任何关于此更改的官方描述。在我看来,我们对这种行为无能为力。

问题:有人已经面临这个问题了吗?有什么想法可以避免在 Safari 中出现这个确认框吗?

【问题讨论】:

  • 您使用的是 UIWebView 还是 Safari?
  • 主要是我对如何在 Safari 浏览器中避免它感兴趣。我已经相应地更新了描述。
  • @kabiroberai 在使用内部 UIWebView 而不是 Safari 的情况下有什么不同吗?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 2011-11-24
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多