当Apple要求强制使用https时,ios webview需要使用https吗?

问题描述:

现状:当Apple要求强制使用https时,ios webview需要使用https吗?

  1. 前不久,苹果公司推迟了强制使用HTTPS的
  2. 我们的应用程序, 已被释放,没有完全强制使用HTTPS。因为webView中的某些 请求尚不支持https。

问题:

  1. 如果使用HTTPS的要求是必要的,那么可能我还是 通过设置“允许 Web内容在任意荷载作用”为“YES”,并设置使用HTTP web视图“允许任意负载”为 “否”?
  2. 此外,将要求影响已 被释放已经应用?
+0

您可以添加例外域到您的info.plist,因此只需添加它们在那里。 – trapper

如果您使用的是UIWebViews或WKWebViews,则可以使用NSAllowsArbitrartyLoadsInWebContent例外来允许您的webviews中的任何http连接。但是,请注意,这只会对运行iOS 10及更高版本的设备有所帮助。如果您的应用支持iOS9,并且只包含网络内容例外,则iOS 9用户将无法加载使用http的网站。为了支持这两个领域,苹果拥有你设置你的Info.plist NSAllowsArbitrartyLoadsInWebContentNSAllowsArbitrartyLoads的组合。这将基本上停用应用传输安全(ATS)在iOS 9器件,但在iOS的10,NSAllowsArbitrartyLoadsInWebContent设置将覆盖NSAllowsArbitrartyLoads设置,这意味着HTTP和非ATS兼容的连接将只在网页视图被允许。

我会建议,如果你允许用户做你的应用程序中的网页浏览任意网站,您应该考虑切换到SFSafariViewController。它不需要任何ATS例外,因为它本质上是将Safari嵌入到您的应用程序中,但作为一个单独的过程。如果您无法控制用户可以访问的网站,则可以提供灵活性,同时为用户提供最佳体验。

对于已在商店中的应用程序:如果应用程序是使用iOS 9之前的基础SDK进行编译的,则ATS保护功能将不会被启动。该应用程序应该在iOS 9和iOS 10上运行良好。您可以通过在iOS 9或10设备上从App Store安装应用程序进行确认,并确认您可以点击http:// URL。

才明白,苹果也没耽误使用HTTPS的要求 - ATS是活跃在运行iOS 9及以上的设备,对于用iOS9或更大的基地SDK编译应用程序。他们推迟的是在使用NSAllowArbitraryLoads例外时需要提供理由。当您将应用程序提交给Apple时,该检查就完成了。商店中的任何现有应用程序都不会受到影响,只是如果您需要上述例外情况之一,则需要有禁用ATS方面的原因。如果您商店中的当前应用程序使用NSAllowsArbitraryLoads例外,则表示您已禁用了应用程序的ATS,并且在某些时候,Apple会希望您解释为什么您可能会因与服务器进行不安全通信而将用户置于危险之中。