WKWebView基础

作者: 盈盈一水不得语 | 来源:发表于2017-02-28 10:45 被阅读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的基本用法是这个,其他的还在研究中……

    相关文章

      网友评论

        本文标题:WKWebView基础

        本文链接:https://www.haomeiwen.com/subject/swfxgttx.html