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];
            }
        }
        
    }
    

      

  • 相关阅读:
    【LeetCode & 剑指offer刷题】数组题18:Plus One
    SQL Server 2005 的动态管理视图DMV和函数DMF
    数据库SQL优化大总结之 百万级数据库优化方案
    误删SQL Server日志文件后怎样附加数据库
    教你建立SQL数据库的表分区
    Sql Server 阻塞的常见原因和解决办法
    SQL索引优化方法
    详解如何定义SQL Server外关键字约束
    写出高性能SQL语句的十三条法则
    SQL SERVER内部函数大全
  • 原文地址:https://www.cnblogs.com/pengsi/p/5985058.html
Copyright © 2011-2022 走看看