要从Safari打开本机应用,我们正在使用类似myapp://do/something
的网址方案重定向。
我知道至少有两种方法可以实现这个目标:
iframe
,其中src属性等于所需的网址(仅适用于 iOS8 ,已停止在iOS9上运行)window.location.href
属性(适用于 iOS8和iOS9 )这两种方式适用于 iOS8 ,并且可以立即将用户重定向到已安装的应用程序,而无需任何确认对话框。但是从iOS9开始 Safari开始显示确认对话框,以确保用户真的想要打开一个应用程序:
屏幕截图上的代码非常简单:
<!DOCTYPE html>
<html>
<head></head>
<body>
<script>
window.location.href = 'fb://';
</script>
</body>
</html>
我发现Apple网站上没有任何关于此更改的官方说明。在我看来,我们无法对这种行为做任何事情。
问题:有人已经遇到过这个问题吗?我们如何避免在Safari中使用此确认框?
答案 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