使用 SFSafariViewController 的主要优势是啥?

Posted

技术标签:

【中文标题】使用 SFSafariViewController 的主要优势是啥?【英文标题】:What is the main advantage of using SFSafariViewController?使用 SFSafariViewController 的主要优势是什么? 【发布时间】:2017-01-09 05:19:13 【问题描述】:

如果我们使用[[UIApplication sharedApplication] openUrl: strUrl];,我没有正确理解使用 SFSafariViewController 的主要优势是什么

两者有什么区别?

【问题讨论】:

您可以将委托添加到将处理操作的 SFSafariViewController。此外,我认为用户在查看 Internet 中的数据时留在应用程序中的主要优势。 在 [UIApplication openURL:] 的情况下,Safari 会启动并且您的应用程序不再处于前台,并且通常不能保证正在运行。相比之下,SFSafariViewController 是您应用程序的一部分,您可以通过 UIViewController 或 SFSafariViewControllerDelegate 方法对其进行一些控制。使用哪一个取决于您想要实现的目标。还有 WKWebView 可以让您更好地控制内容和导航,但缺少 Safari 的一些功能,例如内容阻止。 如果您使用SFSafariViewController,您的应用程序将在前台保持活动应用程序;如果您打开 Safari 应用程序,您的应用程序将变为非活动状态并进入后台。 感谢分享信息... :) @Baglan 这是很有价值的信息。我正在考虑将您的答案复制/粘贴到答案中,但如果您自己做会更好。你能回答这个问题吗? 【参考方案1】:

使用 SFSafariViewController,您可以使用在 Safari 中查看 Web 内容的几乎所有好处,而无需强制用户离开您的应用程序。

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

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

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

更多信息请见here

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于使用 SFSafariViewController 的主要优势是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中使用 SFSafariViewController?

使用 List/ScrollView 与 SFSafariViewController 全屏工作表发生冲突

SFSafariViewController:隐藏导航栏

SFSafariViewController 关闭后的背景音频

SFSafariViewController 详细信息

颤振:SFSafariViewController 不像原生 iOS 模式那样打开