美文网首页
IOS——OCWebView基本方法

IOS——OCWebView基本方法

作者: IOS_技术小牛 | 来源:发表于2020-02-24 10:05 被阅读0次
    
    #import "ZDBaseViewController.h"
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface ZDWebViewViewController : ZDBaseViewController
    
    @end
    
    NS_ASSUME_NONNULL_END
    
    
    #import "ZDWebViewViewController.h"
     #import <WebKit/WebKit.h>
    @interface ZDWebViewViewController ()<WKUIDelegate,WKNavigationDelegate>
    @property(nonatomic,strong)WKWebView *wkWebView;
    @end
    
    @implementation ZDWebViewViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        //将网页视图添加到当前视图上
        [self.view addSubview:self.wkWebView];
        //masonry适配当前视图
        [self.wkWebView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.mas_equalTo(self.view);
        }];
        [self loadRequest];
    }
    
    //加载网址
    - (void)loadRequest{
        NSString *urlStr = [NSString stringWithFormat:@"https://www.baidu.com"];
        NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
        [self.wkWebView loadRequest:request];
    }
    //初始化网页视图
    - (WKWebView *)wkWebView{
        if (!_wkWebView) {
            _wkWebView = [[WKWebView alloc] init];
            _wkWebView.navigationDelegate = self;
        }
        return _wkWebView;
    }
    
    // 页面开始加载时调用
    - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation {
    }
    // 页面加载失败时调用
    - (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error {
      
    }
    // 当内容开始返回时调用
    - (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation {
    }
    // 页面加载完成之后调用
    - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    //    [self getCookie];
    }
    
    // 接收到服务器跳转请求之后调用
    - (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation{
        
    }
    // 在收到响应后,决定是否跳转
    - (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler{
        
        NSLog(@"%@",navigationResponse.response.URL.absoluteString);
        //允许跳转
        decisionHandler(WKNavigationResponsePolicyAllow);
        //不允许跳转
        //decisionHandler(WKNavigationResponsePolicyCancel);
    }
    // 在发送请求之前,决定是否跳转
    - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
        
        NSLog(@"%@",navigationAction.request.URL.absoluteString);
        //允许跳转//打印出
        decisionHandler(WKNavigationActionPolicyAllow);
        //不允许跳转
        //decisionHandler(WKNavigationActionPolicyCancel);
    }
    @end
    
    

    相关文章

      网友评论

          本文标题:IOS——OCWebView基本方法

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