iOS开发

WKWebView基础

2017-02-28  本文已影响0人  盈盈一水不得语

基础用法很简单,在.h文件中遵从代理协议WKUIDelegate,WKNavigationDelegate

在.m中初始化

切记 

webView.UIDelegate = self;

webView.navigationDelegate = self;

这两步。

目前我方项目主要用这个来加载网页,所用的代理方法主要有5个:

第一个:网页加载成功

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

{

}

第二个:网页加载失败

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

}

第三个:收到响应后是否允许网页跳转

- (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);

}

第四个:捕捉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:^{

}];

}

第五个:捕捉Confirm提示框并显示

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

//  js 里面的alert实现,如果不实现,网页的alert函数无效  ,

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的基本用法是这个,其他的还在研究中……

上一篇下一篇

猜你喜欢

热点阅读