ATS App Transport Security:Webview中的HTTP URL

miO*_*iOS 2 objective-c webview ios app-transport-security

我们有一个在Webview中显示HTML内容的应用程序.目前,提供给Webview的内容来自非安全域.从iOS10开始,它应该从安全域提供服务,因此在迁移之前需要清除一些疑问.

  1. 安全的HTML页面(https)是否应该具有来自安全服务器的CSS和JS链接?因为一些CSS和JS可能来自第三台服务器.

  2. 如果安全的HTML页面(https)被加载到Webview中并且有一些不受保护的链接(http),当用户点击它时,这些链接会加载到Webview中吗?

在此先感谢您的帮助.

wot*_*tle 5

我做了一个快速测试,看来UIWebView正确显示页面需要加载的任何引用资源必须遵守ATS规则,但也要遵循您在Info.plist项目中指定的任何例外情况.如果我试图按照指向非https网站的链接UIWebView,它也给了我错误.

我认为你最好的选择是SFSafariViewController有条件地使用iOS 9用户.您可以继续使用UIWebViewiOS 7和iOS 8设备,这些设备不严格执行ATS.这会产生额外的代码,但它应该是最小的.

此外,只是澄清了苹果公司围绕App Transport Security实施的变化.他们宣布,2016年12月31日之后提交的应用程序将需要App Transport Security .这意味着影响不是基于用户的设备操作系统,而是基于提交的开发人员.此外,只要您有正当理由,Apple 仍然允许添加例外.我们还不知道Apple会允许什么类型的理由.最后,Apple在他们的WWDC会议上表示,应用程序仍然可以包含ATS要求的前向保密部分的例外,而无需单独的理由.然而,在我们到达1/1的2017年之前,我们不确定这是如何工作的.

编辑: Apple似乎添加了一个新的例外,您可以使用它来允许非ATS连接UIWebviewWKWebview实例.是的NSAllowsArbitraryLoadsInWebContent.这应该完全符合您的要求.以下是ATS最新动态的精彩摘要:2017年为ATS做准备.