我们知道苹果从今年开始实施ATS。但是,当我打开像Yelp这样的应用程序时,我可以在应用程序中打开几乎所有普通的http URL;例如,开设一家餐馆网站。但是,我认为这是不允许的。
我想问一下,特别是在查看以前的SO问题(虽然很多是2015年)之后,作为小型开发人员,我们是否能够自己实现此功能?我们是否有权在info.plist中允许在应用商店审核流程中允许的arbitraryLoads或NSTemporaryExceptionAllowsInsecureHTTPLoads?
如果你必须投票,但我正在寻找有经验的社区的答案。
答案 0 :(得分:1)
建议的方法是在应用内的SFSafariViewController
中加载任意网页内容。 SFSafariViewController
中加载的内容与在Safari中运行的内容基本相同,并且不要求所有站点都符合Apple的ATS要求。
或者,如果您需要使用较旧的组件来加载Web内容(例如WKWebView
),则可以使用NSAllowsArbitraryLoadsInWebContent
异常,但这很有挑战性,因为只支持该异常在iOS 10+中,如果您在应用中支持iOS 9,则必须对NSAllowsArbitraryLoadsInWebContent
和NSAllowsArbitraryLoads
例外进行奇怪的组合。由于使用NSAllowsArbitraryLoads
,这将使您向Apple提供理由。此时,我会推荐SFSafariViewController
路线。