標籤:mil 不同 with javascrip tin 成功 dep nal res
apple和google為webkit該瀏覽器引擎的發揚光大做出了重要貢獻。在WWDC 2014公布會上公布iOS 8中,apple公布了WebKit架構,這意味著OSX和IOS開發人員將共用相同的開發庫。新改變能夠提高開發人員編寫的代碼的反覆使用性。
webkit使用WKWebView來取代IOS的UIWebView和OSX的WebView,而且使用Nitro JavaScript引擎,這意味著全部第三方瀏覽器執行JavaScript將會跟safari一樣快。
第一、WKWebView添加的屬性和方法
類比UIWebView,跟UIWebView的API對照。
添加的屬性:
1、estimatedProgress 載入進度條。在IOS8之前我們是通過一個假的進度條來實現
2、backForwardList 表示historyList
3、WKWebViewConfiguration *configuration; 初始化webview的配置
添加的方法:
1、- (instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuration
初始化
3、(WKNavigation *)goToBackForwardListItem:(WKBackForwardListItem *)item;
跳到曆史的某個頁面
第二、同樣的屬性和方法
goBack、goForward、canGoBack、canGoForward、stopLoading、loadRequest、scrollView
第三、被刪去的屬性和方法:
1、- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
在跟js互動時,我們使用這個API,眼下WKWebView完檔沒有給出實作類別似功能的API
2、無法設定緩衝
在UIWebView。使用NSURLCache緩衝,通過setSharedURLCache能夠設定成我們自己的緩衝,但WKWebView不支援NSURLCache
第四、delegate方法的不同
UIWebView支援的代理是UIWebViewDelegate,WKWebView支援的代理是WKNavigationDelegate和WKUIDelegate
WKNavigationDelegate主要實現了涉及到導航跳轉方面的回調方法
WKUIDelegate主要實現了涉及到介面顯示的回調方法:如WKWebView的改變和js相關內容
詳細來說WKNavigationDelegate除了有開始載入、載入成功、載入失敗的API外。還具有額外的三個代理方法:
1、- (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation
這個代理是serverredirect時調用
2、- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler
這個代理方法表示當client收到server的回應標頭,依據response相關資訊,能夠決定這次跳轉能否夠繼續進行。
3.- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
依據webView、navigationAction相關資訊決定這次跳轉能否夠繼續進行,這些資訊包括HTTP發送請求,如頭部包括User-Agent,Accept
iOS8 WebKit庫之——WKWebView篇