使用 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 全屏工作表发生冲突