zoukankan      html  css  js  c++  java
  • WKWebView的使用

    一直以来只用过UIWebView,看别人源码项目用到了WKWebView,这里记录一下,毕竟iOS8建议使用WKWebView了.

    - (instancetype)initWithUrl:(NSString *)url {
        if (self = [super init]) {
            self.url = url;
        }
        return self;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        NSURL *URL = [NSURL URLWithString:[self.url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        [self.webView loadRequest:[NSURLRequest requestWithURL:URL]];
    }
    
    - (WKWebView *)webView {
        if (!_webView) {
            WKWebView *wkWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight - 64)];
            [self.view addSubview:wkWebView];
            _webView = wkWebView;
            wkWebView.UIDelegate = self;
            wkWebView.navigationDelegate = self;
            wkWebView.opaque = NO;
            wkWebView.backgroundColor = self.view.backgroundColor;
        }
        return _webView;
    }
    
    #pragma mark - WKNavigationDelegate
    - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation {
        
        NSLog(@"%s", __FUNCTION__);
    }
    
    - (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation {
        NSLog(@"%s", __FUNCTION__);
    }
    
    - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
        
        NSLog(@"%s", __FUNCTION__);
    }
    
    - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error {
        
        NSLog(@"%s", __FUNCTION__);
    }
    
    - (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation {
        
        NSLog(@"%s", __FUNCTION__);
    }
    
    - (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler {
     
        // 允许跳转
        decisionHandler(WKNavigationResponsePolicyAllow); 
    }
    
    - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
      
        // 允许跳转
        decisionHandler(WKNavigationActionPolicyAllow);
    }
    
    - (void)pop {
        
        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
            
            if ([self.webView canGoBack]) {
                [self.webView goBack];
            } else  {
                [self.navigationController popViewControllerAnimated:YES];
            }
        }
        
    }
    

      

  • 相关阅读:
    西门子1200/1500 PLC FC/FB块的区别
    Monaco Editor --Web编辑器 自定义主题、代码提示等
    C# 强制GC垃圾回收
    C# 注册表操作类(查询、修改、删除)
    WinForm重绘Combobox控件无边框样式
    Http-server搭建本地服务
    C# 压缩解压文件夹
    递归获取当前节点和所有父节点
    递归获取当前父节点下的所有子集
    轻量级的通信引擎 StriveEngine
  • 原文地址:https://www.cnblogs.com/pengsi/p/5985058.html
Copyright © 2011-2022 走看看