ios - 在 iOS 9 中禁用应用内浏览器的 ATS?

标签 ios https uiwebview ios9

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/

相关文章:

ios - 从 Amazon S3 下载所有图像

ssl - .app 域是否不需要单独的 SSL 证书

c# - 提供到没有 ssl 证书的网站的加密连接

ios - 使用 iBooks Author 自动制作动画

ios - UIWebView 嵌入视频回调在 iOS8 中不起作用?

ios - 从 swift uiwebview 打印

jquery - 为使用 PhoneGap 构建的 iPhone 应用程序加速 jQuery Mobile 1.1 中的页面转换?

ios - iPhone ALAssets : Can assets be destructively edited?

iphone - 如何重写 [NSRunLoop runUntilDate :] to GCD code?

node.js - 使用 Node.js 和 HTTPS 进行电子邮件审核 API 时参数太长