2017 年需要传输安全性,在 Safari 中打开非 https 站点的应用程序中的 link 是否可以接受?

transport security being required come 2017, will a link in an app that opens a non-https site in safari be acceptable?

当 ATS 在 2017 年 1 月正式执行(无一例外)时,我是否可以将非 https 网站link留在允许通过 safari 打开的应用程序中,而不是在浏览器内应用程序?还是这种做法也不能接受?

一旦发生此更改,是否有任何方法可以保持对非 https 站点的引用?或者这是练习DOA?

应用传输安全仅影响应用内的服务器调用。如果您在 Safari 中加载 URL,就没问题。事实上,here 对于尝试在 UIWebView 中加载页面但如果由于 ATS 而失败的开发人员来说是一个很好的教程,他们会改为在 Safari 中加载它。

另外请注意,您应该考虑使用 SFSafariViewController 在您的应用程序中打开 URL,但具有在 Safari 中打开的所有好处。 SFSafariViewController 允许任意加载(意味着它不强制执行 ATS),但它允许您将用户留在您的应用程序中。如果您的目标是 iOS 9 及更高版本,那当然值得考虑。

另外,你的问题有些说法不正确,2017年ATS会更加严格,但还是有例外的。某些媒体流不需要 ATS(因为视频等内容的加密开销),而且您的应用程序仍然可以向 Apple 请求例外,但 Apple 认为例外的有效理由还有待观察。此外,Apple 仍将允许应用程序为 ATS 的前向保密要求设置例外。所以它并不像你的问题所说的那么简单。

编辑: Apple 似乎添加了一个新的例外,您可以使用它来允许 UIWebviewWKWebview 实例中的非 ATS 连接。是NSAllowsArbitraryLoadsInWebContent。这应该完全符合您的要求。以下是 ATS 的最新摘要:preparing for ATS in 2017.