在应用程序中加载非 http URL 请求 - 应用程序商店可接受的解决方法可能吗?

Loading non-http URL request in app - app store acceptable work arounds possible?

我们知道苹果从今年开始实施了ATS。但是,当我打开像 Yelp 这样的应用程序时,我几乎可以打开应用程序中的每个普通 http URL;例如,打开一个餐厅网站。但是,我的印象是这是不允许的。

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

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

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

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