版本記錄
| 版本號 | 時間 |
|---|---|
| V1.0 | 2017.09.19 |
前言
iOS8和OS X 10.10以后,蘋果推出了新框架WebKit,提供了替換UIWebView的組件WKWebView。各種UIWebView的問題沒有了,速度更快了,占用內(nèi)存少了。接下來幾篇我們就對WebKit框架進(jìn)行全面深度的解析,還是老規(guī)矩,從簡單到復(fù)雜,從面到點(diǎn)。感興趣的可以看我寫的上面幾篇。
1. WebKit框架解析(一)—— 基本概覽及WKWebView(一)
創(chuàng)建和配置WebView
1. WKNavigationDelegate
WKNavigationDelegate協(xié)議的方法可以幫助您實(shí)現(xiàn)在Web視圖接受,加載和完成導(dǎo)航請求的過程中觸發(fā)的自定義行為。
2. WKProcessPool
WKProcessPool對象表示W(wǎng)eb內(nèi)容進(jìn)程池。與Web視圖相關(guān)聯(lián)的進(jìn)程池由其Web視圖配置指定。 每個Web視圖都有自己的Web內(nèi)容進(jìn)程,直到達(dá)到實(shí)現(xiàn)定義的進(jìn)程限制; 之后,具有相同進(jìn)程池的Web視圖最終會共享Web內(nèi)容進(jìn)程。
3. WKWindowFeatures
當(dāng)請求新的Web視圖時,WKWindowFeatures對象指定包含窗口的可選屬性。
4. WKWebView
WKWebView對象顯示交互式Web內(nèi)容,例如針對應(yīng)用內(nèi)瀏覽器。 您可以使用WKWebView類將Web內(nèi)容嵌入到您的應(yīng)用程序中。 為此,創(chuàng)建一個WKWebView對象,將其設(shè)置為視圖,并向其發(fā)送加載Web內(nèi)容的請求。
在iOS 8.0和OS X 10.10中,使用WKWebView將Web內(nèi)容加入到您的app中,不要使用UIWebView和WebView。
5. WKWebViewConfiguration
使用WKWebViewConfiguration類,您可以確定網(wǎng)頁呈現(xiàn)的速度,媒體播放的處理方式,用戶可以選擇的項(xiàng)目的粒度等等。
WKWebViewConfiguration僅在首次初始化Web視圖時使用。 在創(chuàng)建Web視圖的配置后,您無法使用此類來更改web視圖的配置。
6. WKPreferences
WKPreferences對象封裝了Web視圖的首選項(xiàng)設(shè)置。與Web視圖關(guān)聯(lián)的首選項(xiàng)對象由其Web視圖配置指定。
7. WKUIDelegate
WKUIDelegate類提供了代表網(wǎng)頁呈現(xiàn)本機(jī)用戶界面元素的方法。
Web視圖用戶界面委托實(shí)現(xiàn)此協(xié)議來控制新窗口的打開,增加用戶單擊元素時顯示的默認(rèn)菜單項(xiàng)的行為,并執(zhí)行其他與用戶界面相關(guān)的任務(wù)。 可以通過處理JavaScript或其他插件內(nèi)容來調(diào)用這些方法。 默認(rèn)Web視圖實(shí)現(xiàn)假定每個Web視圖有一個窗口,因此非常規(guī)用戶界面可能會實(shí)現(xiàn)用戶界面委托。
Navigating a Web View - WebView導(dǎo)航
8. WKNavigation
WKNavigation對象包含跟蹤網(wǎng)頁加載進(jìn)度的信息。
從Web視圖加載方法返回導(dǎo)航對象,并將其傳遞給導(dǎo)航委托方法,以從開始到結(jié)束唯一標(biāo)識網(wǎng)頁加載。 它沒有自己的方法或?qū)傩浴?/p>
9. WKNavigationAction
WKNavigationAction對象包含有關(guān)可能導(dǎo)致導(dǎo)航的操作的信息,用于作出策略決策。
10. WKNavigationResponse
WKNavigationResponse對象包含有關(guān)導(dǎo)航響應(yīng)的信息,用于作出策略決策。
Traversing the Back-Forward List - 遍歷后退列表
11. WKBackForwardList
一個WKBackForwardList對象維持了一個訪問頁列表,可以用來返回或者前進(jìn)到最近訪問的頁面。
一個WKBackForwardList對象僅僅維持了列表數(shù)據(jù),它不進(jìn)行實(shí)際的頁面加載(換句話說,它不會做任何請求),如果你需要進(jìn)行頁面加載,可以使用WKWebView的loadRequest:方法。
12. WKBackForwardListItem
WKBackForwardListItem對象代表了Web視圖返回列表中的一個webpage。
WKBackForwardListItem對象包含了返回列表中包含的webpage的信息,列表包含在WKBackForwardList對象中,該對象包含了所有與webpage相關(guān)的信息。每一個WKBackForwardListItem對象包含了一個webpage 的URL和title,以及webpage用于請求新的網(wǎng)頁的URL。
Accessing Element and Frame Information - 訪問元素和框架信息
13. WKFrameInfo
WKFrameInfo對象包含了一個webpage的框架的相關(guān)信息。
這個類的一個實(shí)例是一個暫時的,僅數(shù)據(jù)的對象;它不會唯一地標(biāo)識跨多個代理方法調(diào)用的框架。
Querying and Deleting Website Data - 查詢和刪除網(wǎng)站數(shù)據(jù)
14. WKWebsiteDataRecord
WKWebsiteDataRecord對象表示由URL的域名和后綴分組的網(wǎng)站數(shù)據(jù)。
15. WKWebsiteDataStore
WKWebsiteDataStore對象代表了一個已選擇的website使用的各種類型的數(shù)據(jù),數(shù)據(jù)類型包含cookies,disk和memory cache,和持久化數(shù)據(jù)例如WebSQL,Indexed DB數(shù)據(jù)庫以及本地存儲。
Uploading a File - 上傳文件
16. WKOpenPanelParameters
WKOpenPanelParameters對象包含了用于文件上傳控制的參數(shù)。
Incorporating Scripts - 合并腳本
17. WKUserContentController
WKUserContentController對象提供了一種JavaScript的方式來發(fā)布消息并將用戶腳本注入到Web視圖中。
與Web視圖相關(guān)聯(lián)的用戶內(nèi)容控制器由其Web視圖配置指定。
18. WKScriptMessage
WKScriptMessage對象包含了關(guān)于發(fā)送給webpage的信息。
19. WKUserScript
WKUserScript對象代表了一個可以注入到webpage的script。
20. WKScriptMessageHandler
遵循了協(xié)議WKScriptMessageHandler的類提供了一個從在webpage中運(yùn)行的JavaScript接收消息的方法。
Identifying First-party webpages - 識別第一方網(wǎng)頁
21. WKSecurityOrigin
對象WKSecurityOrigin包含了host name、protocol和端口號 port number。第一方加載是任何加載URL與請求的網(wǎng)站具有相同的安全來源。 第一方網(wǎng)頁可以訪問對方的資源,如腳本和數(shù)據(jù)庫。
這個類的一個實(shí)例是一個暫時的,僅數(shù)據(jù)的對象; 它不唯一地標(biāo)識跨多個委托方法調(diào)用的安全起點(diǎn)。
Previewing an Item - 預(yù)覽條目
22. WKPreviewElementInfo
WKPreviewElement對象包含了預(yù)覽webpage的所有信息。
23. WKPreviewActionItem
WKPreviewActionItem協(xié)議提供了獲取預(yù)覽行為條目的屬性。
Reference - 參考
24. WebKit Error Codes
WebKit的錯誤代碼域。WKError和 WKErrorCode 定義了同樣的錯誤碼,WKError是一個結(jié)構(gòu)體,而WKError.Code代表了一個枚舉。
25. WebKit Structures
影響很多類的WebKit結(jié)構(gòu)體。
26. WebKit Enumerations
影響很多類的WebKit枚舉。
27. WebKit Functions
影響很多類的WebKit函數(shù),一般以NPN和NPP開頭。
28. WebKit Data Types
影響很多類的WebKit數(shù)據(jù)。
-
General Data TypesBP_CreatePluginMIMETypesPreferencesFuncPtrJRIGlobalRefMainFuncPtrWebPreferencesPrivate
-
DOM Related Data TypesDOMEventExceptionCodeDOMExceptionCodeDOMObjectInternalDOMRangeExceptionCodeDOMTimeStampDOMXPathExceptionCode
29. WebKit Constants
影響很多類的WebKit常數(shù)。
后記
未完,待續(xù)~~~
