WKWebView的使用方法:

WKWebView的使用方法:

1.storyboard拉取WKWebView控件,并且将对应的ViewController的Build Version上升到iOS11.0

2. 在对应的ViewController添加

#import <WebKit/WebKit.h>

3在Target ---》 Build Phases ---》 加上webKit这个库      ----------《这个是要加的,至少我Xcode11.3.1还没有Fix这个bug》

4.在对应的ViewController做lazy loading,


-(WKWebView *)documentWebView{
    if (!_documentWebView) {
//           WKWebViewConfiguration *configuration = [WKWebViewConfiguration new];
//           WKPreferences *preferences = [WKPreferences new];
//           configuration.preferences = preferences;
//           self.documentWebView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];
           _documentWebView.navigationDelegate = self;
           _documentWebView.UIDelegate = self;
           _documentWebView.scrollView.alwaysBounceVertical = NO;
           _documentWebView.translatesAutoresizingMaskIntoConstraints = NO;
       }
       return _documentWebView;
    
    
    
}

添加delegate的主要说明

@protocol WKNavigationDelegate; //类似于UIWebView的加载成功、失败、是否允许跳转等

@protocol WKUIDelegate; //主要是一些alert、打开新窗口之类的

 

5.对应UIWebView的方法

//下面这2个方法共同对应了UIWebView的 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
//先:针对一次action来决定是否允许跳转,action中可以获取request,允许与否都需要调用decisionHandler,比如decisionHandler(WKNavigationActionPolicyCancel);
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;
//后:根据response来决定,是否允许跳转,允许与否都需要调用decisionHandler,如decisionHandler(WKNavigationResponsePolicyAllow);
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler;

//开始加载,对应UIWebView的- (void)webViewDidStartLoad:(UIWebView *)webView;
- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(null_unspecified WKNavigation *)navigation;

//加载成功,对应UIWebView的- (void)webViewDidFinishLoad:(UIWebView *)webView;
- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation;

//加载失败,对应UIWebView的- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
- (void)webView:(WKWebView *)webView didFailNavigation:(null_unspecified WKNavigation *)navigation withError:(NSError *)error;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值