57

iOS开发:SFSafariViewController的用法

 4 years ago
source link: https://www.tuicool.com/articles/6jiArqr
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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不在讨论。

属性及其方法

1左上角按钮的样式 FfmMzi7.png!web

左上角按钮的样式 SFSafariViewControllerDismissButtonStyle;

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

2初始化SFSafariViewController。

bA3yyii.png!web

初始化的例子

Uv2EZbN.png!web

3控制器初始化时的配置

f2aaAfR.png!web

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

  • BOOL entersReaderIfAvailable :是否使用阅读器功能。如想要显示的是 Wikipedia 的內容,要使用的是阅读

器( Reader )的功能。阅读器是 Safari 中一個很方便的功能,可以从网站截取并显示重要的內容。

  • BOOL barCollapsingEnabled:当用户滚动web内容时,指示SFSafariViewController是否应启用导航栏的折叠

和底部工具栏的隐藏,默认是YES。

4背景色

7r2ae2j.png!web

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

进度条的颜色

yuA3iev.png!web

5左上角 按钮的属性

2UjAJrj.png!web

在导航栏中用来关闭SFSafariViewController的解散按钮的样式。默认值是

SFSafariViewControllerDismissButtonStyleDone。

有三种,以枚举的形式罗列出来,具体请看本文第一张图片所示。

SFSafariViewControllerDelegate

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

q6RzEbn.png!web

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

MN3aAvN.png!web

当SFSafariViewController完成加载传递给初始化器的URL时,将调用此方法。它不会在相同的

SFSafariViewController实例中调用任何后续页面加载。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK