iOS 9 推出 App Transport Security (ATS)鼓励使用安全连接。
这很棒,但是如果我的应用程序有一个内置的网络浏览器,用户应该能够使用它连接到任何网站怎么办?例如,Facebook 应用程序允许故事包含外部网站的链接。当用户点击此类链接时,它不会启动 Safari,而是启动应用内浏览器。
如果没有enabling the global NSAllowArbitraryLoads flag,我怎样才能得到同样的行为? ?
我想要强制使用 https 的所有好处,但想在我的内部浏览器中禁用此检查。在理想的情况下,Apple 会允许我在 UIWebView 上指定一个属性,以允许它加载不安全的 URL,而不是全有或全无。我无法将每个域列入白名单,因为我不知道我的用户将加载哪些 URL。我正在寻找与 iOS 8 兼容的解决方案。
最佳答案
在这种情况下,您通常需要通过将 NSAllowsArbitraryLoads
设置为 true 来禁用 ATS。如果您知道可以支持 HTTPS 的特定 URL(例如您自己的服务器或在 UIWebView
之外的应用中使用的 API 服务器),那么您可以创建一个异常并将这些异常的 NSExceptionsAllowsInsecureHTTPLoads
设置为 false
关于ios - 在 iOS 9 中禁用应用内浏览器的 ATS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32106994/