在应用程序中加载非http URL请求 - 应用商店可以接受的工作吗?

时间:2017-08-07 07:01:43

标签: swift url uiwebview app-transport-security

我们知道苹果从今年开始实施ATS。但是,当我打开像Yelp这样的应用程序时,我可以在应用程序中打开几乎所有普通的http URL;例如,开设一家餐馆网站。但是,我认为这是不允许的。

我想问一下,特别是在查看以前的SO问题(虽然很多是2015年)之后,作为小型开发人员,我们是否能够自己实现此功能?我们是否有权在info.plist中允许在应用商店审核流程中允许的arbitraryLoads或NSTemporaryExceptionAllowsInsecureHTTPLoads?

如果你必须投票,但我正在寻找有经验的社区的答案。

1 个答案:

答案 0 :(得分:1)

建议的方法是在应用内的SFSafariViewController中加载任意网页内容。 SFSafariViewController中加载的内容与在Safari中运行的内容基本相同,并且不要求所有站点都符合Apple的ATS要求。

或者,如果您需要使用较旧的组件来加载Web内容(例如WKWebView),则可以使用NSAllowsArbitraryLoadsInWebContent异常,但这很有挑战性,因为只支持该异常在iOS 10+中,如果您在应用中支持iOS 9,则必须对NSAllowsArbitraryLoadsInWebContentNSAllowsArbitraryLoads例外进行奇怪的组合。由于使用NSAllowsArbitraryLoads,这将使您向Apple提供理由。此时,我会推荐SFSafariViewController路线。