使用 SFSafariViewController 的主要优点是什么?

What is the main advantage of using SFSafariViewController?

如果我们使用 [[UIApplication sharedApplication] openUrl: strUrl];

,我无法正确理解使用 SFSafariViewController 的主要优势是什么

两者有什么区别?

借助 SFSafariViewController,您几乎可以利用在 Safari 中查看 Web 内容的所有优势,而无需强制用户离开您的应用程序。

大多数应用只需要提供通用的网络浏览体验。这是 safari 视图控制器的完美场景。

在 SFSafariViewController 之前,不同应用程序的浏览体验不一致,这可能会让用户感到困惑。一些界面也可能缺少用户期望的东西,例如指示页面加载量的进度条。您无权使用 Safari 的所有功能。这包括 reader 视图、用于自动填充功能的 iCloud 钥匙串等。

如果您想在 iOS 9 之前拥有这些功能,您必须通过在 Safari 中打开内容来迫使用户完全离开您的应用程序。 SFSafariViewController 解决了所有这些问题。

详情请见here

在 [UIApplication openURL:] 的情况下,Safari 已启动并且您的应用程序不再处于前台,并且通常不能保证 运行。相比之下,SFSafariViewController 是您应用程序的一部分,您可以将其作为 UIViewController 或 SFSafariViewControllerDelegate 方法保留一些控制权。使用哪一个取决于您想要实现的目标。还有 WKWebView,它可以让您更好地控制内容和导航,但缺少 Safari 的某些功能,例如内容阻止。