iOS开发:SFSafariViewController的用法

SFSafariViewController(API_AVAILABLE(ios(9.0)))是iOS_9.0之后推出的一种视图控制器,继承与UIViewController,用于在为浏览web提供可见标准接口的对象,可以打开Safari相似浏览效果的网页。通俗的理解就是器功能类似于 WKWebView加载web页,不用跳转到Safari,就有了Safari浏览器完全功能。

SFSafariViewController视图控制器包括Safari的一些功能,如阅读器、自动填充、欺诈网站检测和内容拦截。在iOS9和iOS10中,它与Safari共享cookie和其他网站数据。用户与SFSafariViewController的活动和交互对您的应用程序不可见,应用程序无法访问自动填充数据、浏览历史记录或网站数据。您不需要在应用程序和Safari之间保护数据。如果你想在iOS 11或更高版本的应用程序和Safari之间共享数据,那么用户只需登录一次就可以了,使用SFAuthenticationSession。

需要注意:

根据App Store Review Guidelines(App Store审查指南),这个视图控制器必须用于向用户可见地呈现信息;控制器不得被其他视图或图层隐藏或遮挡。此外,未经用户知情和同意,应用程序不得使用SFSafariViewController跟踪用户。

如何选择用哪个控件展示web:

如果你的应用程序允许用户在互联网上任何地方查看web网站,使用SFSafariViewController类。如果您的应用程序定制、交互或控制web内容的显示,请使用WKWebView类。iOS_8.0之后苹果推出WKWebView来代替UIWebView,所以UIWebView不在讨论。

iOS开发:SFSafariViewController的用法_第1张图片
左上角按钮的样式左上角按钮的样式

左上角按钮的样式 SFSafariViewControllerDismissButtonStyle;

特别注意,这个枚举是在iOS_11.0之后的方法


初始化并传入URL
初始化的例子

初始化SFSafariViewController。


控制器初始化时的配置

控制器初始化时的配置,这个属性包括俩个:

BOOL   entersReaderIfAvailable :是否使用阅读器功能。如想要显示的是 Wikipedia 的內容,要使用的是阅读器( Reader )的功能。阅读器是 Safari 中一個很方便的功能,可以从网站截取并显示重要的內容。

BOOL   barCollapsingEnabled:当用户滚动web内容时,指示SFSafariViewController是否应启用导航栏的折叠和底部工具栏的隐藏,默认是YES。


上部和下部bar的颜色

SFSafariViewController上部和底部bar的背景颜色。


进度条的颜色

导航条下面进度条的颜色


导航栏关闭按钮的样式

在导航栏中用来关闭SFSafariViewController的解散按钮的样式。默认值是 SFSafariViewControllerDismissButtonStyleDone。有三种,以枚举的形式罗列出来,具体请看本文第一张图片所示。


SFSafariViewControllerDelegate

展示web页,下面俩个方法基本就够用了。

iOS开发:SFSafariViewController的用法_第2张图片
当用户单击导航栏左边的按钮调用委托回调,在这个调用中,视图控制器被销毁。

当用户单击导航栏左边的按钮调用委托回调,在这个调用中,视图控制器被销毁。


iOS开发:SFSafariViewController的用法_第3张图片
当SFSafariViewController完成加载传递给初始化器的URL时,将调用此方法

当SFSafariViewController完成加载传递给初始化器的URL时,将调用此方法。它不会在相同的SFSafariViewController实例中调用任何后续页面加载。


注意:以上属于原创,若有雷同纯属巧合;如有错误,请多多指正,转载请标明来源和作者。

你可能感兴趣的:(iOS开发:SFSafariViewController的用法)