WKWebView API精讲(OC)

来源:互联网 发布:淘宝怎么买原味内衣 编辑:程序博客网 时间:2024/06/12 21:53

WKWebView API精讲(OC)

前言

鉴于LL同志对笔者说:“能不能写个OC版本的WKWebView的使用教程?”,还积极打赏了30RMB,笔者又怎么好意思拒绝呢,于是才有了下文。

所有看到本篇文章的同志们,应该要感谢LL同志,更要向LL同志学习,积极打赏!

WKWebView

看看WKWebView的头文件声明:

WKWebViewConfiguration配置

WKPreferences偏好设置

目前在iOS平台上偏好设置只有三个属性可以设置,如下:

WKProcessPool内容处理池

WKProcessPool并没有公开任何的属性或者方法,不需要配置:

其实我们也没有必须去创建它。

<iframe id="iframeu2513605_0" src="http://pos.baidu.com/qcam?rdid=2513605&amp;dc=2&amp;di=u2513605&amp;dri=0&amp;dis=0&amp;dai=2&amp;ps=3224x354&amp;dcb=BAIDU_SSP_define&amp;dtm=BAIDU_DUP_SETJSONADSLOT&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1459003270069&amp;ti=WKWebView%20%7C%20%E6%A0%87%E5%93%A5%E7%9A%84%E6%8A%80%E6%9C%AF%E5%8D%9A%E5%AE%A2&amp;ari=1&amp;dbv=0&amp;drs=1&amp;pcs=1240x625&amp;pss=1240x3234&amp;cfv=21&amp;cpl=3&amp;chi=5&amp;cce=true&amp;cec=UTF-8&amp;tlm=1458974470&amp;ltu=http%3A%2F%2Fwww.henishuo.com%2Fwkwebview-objc%2F&amp;ltr=http%3A%2F%2Fwww.henishuo.com%2Fcategory%2Fxmpp%2F&amp;ecd=1&amp;psr=1280x800&amp;par=1255x777&amp;pis=-1x-1&amp;ccd=24&amp;cja=true&amp;cmi=6&amp;col=zh-cn&amp;cdo=-1&amp;tcn=1459003270&amp;qn=9ec835fe50c99c00&amp;tt=1459003270062.34.438.438" width="760" height="90" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: bottom; max-width: 100%;"></iframe>

WKUserContentController内容交互控制器

我们要通过JS与webview内容交互,就需要到这个类了,它的所有属性及方法说明如下:

WKUserScript

在WKUserContentController中,所有使用到WKUserScript。WKUserContentController是用于与JS交互的类,而所注入的JS是WKUserScript对象。它的所有属性和方法如下:

WKUserScriptInjectionTime

它是一个枚举类型,只有在文档开始加载时注入和加载结束时注入。

WKWebsiteDataStore存储的Web内容

iOS9.0以后才能使用这个类。它是代表webview不同的数据类型,包括cookies、disk、memory caches、WebSQL、IndexedDB数据库和本地存储。

从这里看,要优化Webview好像可以通过它来实现,不过要求iOS9.0以上才能使用。现在6.0都没有抛弃的我,从来不能考虑这种最新的。

所有的dataTypes是下面这些系统所定义的:

WKWebsiteDataRecord

iOS9.0以后才可用。

website的数据存储记录类型,它只有两个属性:

WKSelectionGranularity选择粒度

它表示在webview上选择内容的粒度,只有下面这两种类型:

它是用于webview内容交互时选择内容的粒度类型设置。比如说,当使用WKSelectionGranularityDynamic时,而所选择的内容是单个块,这时候granularity可能会是单个字符;当所选择的web内容不限制于某个块时,granularity可能会是单个块。

WKNavigationDelegate

WKNavigationActionPolicy

导航动作决定策略:

它是枚举类型,只有Cancel和Allow这两种。设置为Cancel就是不允许导航,就不会跳转链接。

WKNavigationResponsePolicy

WKNavigationResponse

WKNavigationResponse是导航响应类,通过它可以获取相关响应的信息:

只有接收响应与不接收响应两种。

WKNavigationAction

WKNavigationAction对象包含关于导航的action的信息,用于make policy decisions。它只有以下几个属性:

WKNavigationType

WKNavigationType类型是枚举类型,它的可选值如下:

WKUIDelegate

WKBackForwardList

WKBackForwardList表示webview中可以前进或者后退的页面列表。其声明如下:

WKBackForwardListItem

页面导航前进、后退列表项:

最后

本篇文章只是讲解了WKWebView所有相关的类的API,先阅读过本篇文章,再继续往下阅读实战篇文章!

关注下一篇:WKWebView与H5交互实战

0 0
原创粉丝点击