版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.09.19 |
前言
iOS8
和OS X 10.10
以后,苹果推出了新框架WebKit
,提供了替换UIWebView
的组件WKWebView
。各种UIWebView
的问题没有了,速度更快了,占用内存少了。接下来几篇我们就对WebKit
框架进行全面深度的解析,还是老规矩,从简单到复杂,从面到点。感兴趣的可以看我写的上面几篇。
1. WebKit框架解析(一)—— 基本概览及WKWebView(一)
创建和配置WebView
1. WKNavigationDelegate
WKNavigationDelegate
协议的方法可以帮助您实现在Web视图接受,加载和完成导航请求的过程中触发的自定义行为。
2. WKProcessPool
WKProcessPool
对象表示Web内容进程池。与Web视图相关联的进程池由其Web视图配置指定。 每个Web视图都有自己的Web内容进程,直到达到实现定义的进程限制; 之后,具有相同进程池的Web视图最终会共享Web内容进程。
3. WKWindowFeatures
当请求新的Web视图时,WKWindowFeatures
对象指定包含窗口的可选属性。
4. WKWebView
WKWebView
对象显示交互式Web内容,例如针对应用内浏览器。 您可以使用WKWebView类将Web内容嵌入到您的应用程序中。 为此,创建一个WKWebView对象,将其设置为视图,并向其发送加载Web内容的请求。
在iOS 8.0和OS X 10.10中,使用WKWebView
将Web内容加入到您的app中,不要使用UIWebView
和WebView
。
5. WKWebViewConfiguration
使用WKWebViewConfiguration
类,您可以确定网页呈现的速度,媒体播放的处理方式,用户可以选择的项目的粒度等等。
WKWebViewConfiguration
仅在首次初始化Web视图时使用。 在创建Web视图的配置后,您无法使用此类来更改web视图的配置。
6. WKPreferences
WKPreferences
对象封装了Web视图的首选项设置。与Web视图关联的首选项对象由其Web视图配置指定。
7. WKUIDelegate
WKUIDelegate
类提供了代表网页呈现本机用户界面元素的方法。
Web视图用户界面委托实现此协议来控制新窗口的打开,增加用户单击元素时显示的默认菜单项的行为,并执行其他与用户界面相关的任务。 可以通过处理JavaScript或其他插件内容来调用这些方法。 默认Web视图实现假定每个Web视图有一个窗口,因此非常规用户界面可能会实现用户界面委托。
Navigating a Web View - WebView导航
8. WKNavigation
WKNavigation
对象包含跟踪网页加载进度的信息。
从Web视图加载方法返回导航对象,并将其传递给导航委托方法,以从开始到结束唯一标识网页加载。 它没有自己的方法或属性。
9. WKNavigationAction
WKNavigationAction
对象包含有关可能导致导航的操作的信息,用于作出策略决策。
10. WKNavigationResponse
WKNavigationResponse
对象包含有关导航响应的信息,用于作出策略决策。
Traversing the Back-Forward List - 遍历后退列表
11. WKBackForwardList
一个WKBackForwardList
对象维持了一个访问页列表,可以用来返回或者前进到最近访问的页面。
一个WKBackForwardList
对象仅仅维持了列表数据,它不进行实际的页面加载(换句话说,它不会做任何请求),如果你需要进行页面加载,可以使用WKWebView
的loadRequest:
方法。
12. WKBackForwardListItem
WKBackForwardListItem
对象代表了Web视图返回列表中的一个webpage
。
WKBackForwardListItem
对象包含了返回列表中包含的webpage的信息,列表包含在WKBackForwardList
对象中,该对象包含了所有与webpage相关的信息。每一个WKBackForwardListItem
对象包含了一个webpage 的URL和title,以及webpage用于请求新的网页的URL。
Accessing Element and Frame Information - 访问元素和框架信息
13. WKFrameInfo
WKFrameInfo
对象包含了一个webpage的框架的相关信息。
这个类的一个实例是一个暂时的,仅数据的对象;它不会唯一地标识跨多个代理方法调用的框架。
Querying and Deleting Website Data - 查询和删除网站数据
14. WKWebsiteDataRecord
WKWebsiteDataRecord
对象表示由URL的域名和后缀分组的网站数据。
15. WKWebsiteDataStore
WKWebsiteDataStore
对象代表了一个已选择的website
使用的各种类型的数据,数据类型包含cookies
,disk
和memory cache
,和持久化数据例如WebSQL
,Indexed DB
数据库以及本地存储。
Uploading a File - 上传文件
16. WKOpenPanelParameters
WKOpenPanelParameters
对象包含了用于文件上传控制的参数。
Incorporating Scripts - 合并脚本
17. WKUserContentController
WKUserContentController
对象提供了一种JavaScript的方式来发布消息并将用户脚本注入到Web视图中。
与Web视图相关联的用户内容控制器由其Web视图配置指定。
18. WKScriptMessage
WKScriptMessage
对象包含了关于发送给webpage的信息。
19. WKUserScript
WKUserScript
对象代表了一个可以注入到webpage
的script
。
20. WKScriptMessageHandler
遵循了协议WKScriptMessageHandler
的类提供了一个从在webpage
中运行的JavaScript
接收消息的方法。
Identifying First-party webpages - 识别第一方网页
21. WKSecurityOrigin
对象WKSecurityOrigin
包含了host name、protocol和端口号 port number。第一方加载是任何加载URL与请求的网站具有相同的安全来源。 第一方网页可以访问对方的资源,如脚本和数据库。
这个类的一个实例是一个暂时的,仅数据的对象; 它不唯一地标识跨多个委托方法调用的安全起点。
Previewing an Item - 预览条目
22. WKPreviewElementInfo
WKPreviewElement
对象包含了预览webpage的所有信息。
23. WKPreviewActionItem
WKPreviewActionItem
协议提供了获取预览行为条目的属性。
Reference - 参考
24. WebKit Error Codes
WebKit的错误代码域。WKError
和 WKErrorCode
定义了同样的错误码,WKError
是一个结构体,而WKError.Code
代表了一个枚举。
25. WebKit Structures
影响很多类的WebKit
结构体。
26. WebKit Enumerations
影响很多类的WebKit
枚举。
27. WebKit Functions
影响很多类的WebKit
函数,一般以NPN
和NPP
开头。
28. WebKit Data Types
影响很多类的WebKit
数据。
-
General Data Types
BP_CreatePluginMIMETypesPreferencesFuncPtr
JRIGlobalRef
MainFuncPtr
WebPreferencesPrivate
-
DOM Related Data Types
DOMEventExceptionCode
DOMExceptionCode
DOMObjectInternal
DOMRangeExceptionCode
DOMTimeStamp
DOMXPathExceptionCode
29. WebKit Constants
影响很多类的WebKit
常数。
后记
未完,待续~~~