WebKit框架解析(二)—— 基本概覽及WKWebView(二)

版本記錄

版本號 時間
V1.0 2017.09.19

前言

iOS8OS 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中,不要使用UIWebViewWebView

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)行頁面加載,可以使用WKWebViewloadRequest:方法。

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,diskmemory cache,和持久化數(shù)據(jù)例如WebSQLIndexed 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對象代表了一個可以注入到webpagescript。

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的錯誤代碼域。WKErrorWKErrorCode 定義了同樣的錯誤碼,WKError是一個結(jié)構(gòu)體,而WKError.Code代表了一個枚舉。

25. WebKit Structures

影響很多類的WebKit結(jié)構(gòu)體。

26. WebKit Enumerations

影響很多類的WebKit枚舉。

27. WebKit Functions

影響很多類的WebKit函數(shù),一般以NPNNPP開頭。

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ù)~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容