版本記錄
版本號 | 時間 |
---|---|
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 Types
BP_CreatePluginMIMETypesPreferencesFuncPtr
JRIGlobalRef
MainFuncPtr
WebPreferencesPrivate
-
DOM Related Data Types
DOMEventExceptionCode
DOMExceptionCode
DOMObjectInternal
DOMRangeExceptionCode
DOMTimeStamp
DOMXPathExceptionCode
29. WebKit Constants
影響很多類的WebKit
常數(shù)。
后記
未完侧蘸,待續(xù)~~~