WKWebView基礎(chǔ)

基礎(chǔ)用法很簡(jiǎn)單,在.h文件中遵從代理協(xié)議WKUIDelegate,WKNavigationDelegate

在.m中初始化

切記?

webView.UIDelegate = self;

webView.navigationDelegate = self;

這兩步。

目前我方項(xiàng)目主要用這個(gè)來加載網(wǎng)頁,所用的代理方法主要有5個(gè):

第一個(gè):網(wǎng)頁加載成功

- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation

{

}

第二個(gè):網(wǎng)頁加載失敗

- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation {

}

第三個(gè):收到響應(yīng)后是否允許網(wǎng)頁跳轉(zhuǎn)

- (void)webView:(WKWebView *)w decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {

NSString *urlStr = navigationAction.request.URL.absoluteString;

NSLog(@"webview urlStr = %@",urlStr);

if (navigationAction.targetFrame == nil) {

[webView loadRequest:navigationAction.request];

}

decisionHandler(WKNavigationActionPolicyAllow);

}

第四個(gè):捕捉Alert提示框并顯示

- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(nonnull NSString *)message initiatedByFrame:(nonnull WKFrameInfo *)frame completionHandler:(nonnull void (^)(void))completionHandler {

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:message message:nil preferredStyle:UIAlertControllerStyleAlert];

[alertController addAction:[UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

completionHandler();

}]];

[self presentViewController:alertController animated:YES completion:^{

}];

}

第五個(gè):捕捉Confirm提示框并顯示

- (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL))completionHandler {

//? js 里面的alert實(shí)現(xiàn),如果不實(shí)現(xiàn),網(wǎng)頁的alert函數(shù)無效? ,

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:message

message:nil

preferredStyle:UIAlertControllerStyleAlert];

[alertController addAction:[UIAlertAction actionWithTitle:@"確定"

style:UIAlertActionStyleDefault

handler:^(UIAlertAction *action) {

completionHandler(YES);

}]];

[alertController addAction:[UIAlertAction actionWithTitle:@"取消"

style:UIAlertActionStyleCancel

handler:^(UIAlertAction *action){

completionHandler(NO);

}]];

[self presentViewController:alertController animated:YES completion:^{}];

}

WKWebView的基本用法是這個(gè),其他的還在研究中……

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

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

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