2017年1月,当ATS正式执行(没有例外)时,我是否可以在允许通过Safari而非浏览器内应用程序打开的应用程序中保留非https网站链接?或者这种做法也是不可接受的?
一旦发生此更改,是否有任何方法可以维护对非https网站的引用?或者这是DOA的实践吗?
答案 0 :(得分:0)
App Transport Security仅影响应用内的服务器调用。如果你在Safari中加载URL,你会没事的。实际上,here对于尝试在UIWebView中加载页面的开发人员来说是一个很好的教程,但如果它因ATS而失败,则会在Safari中加载它。
另外需要注意的是,您应该考虑使用SFSafariViewController
打开应用中的网址,但要享受在Safari中打开的所有好处。 SFSafariViewController
允许任意加载(意味着它不会强制执行ATS),但它允许您将用户留在应用中。如果你的目标是iOS 9及更新版本,那肯定值得考虑。
另外,你的问题有一个不正确的陈述,因为从2017年开始,ATS会更加严格,但仍然会有例外。某些媒体流不需要ATS(因为视频等加密的开销),以及您的应用程序仍然可以请求Apple的例外,但仍有待观察Apple认为有效的例外理由。此外,Apple仍将允许应用程序为ATS的前向保密要求设置例外情况。所以它并不像你的问题所说的那么简单。
修改强>
Apple似乎添加了一个新例外,您可以使用它来允许UIWebview
和WKWebview
实例中的非ATS连接。它是NSAllowsArbitraryLoadsInWebContent
。这应该完全符合您的要求。以下是ATS的最新摘要:preparing for ATS in 2017。