zoukankan      html  css  js  c++  java
  • WKWebView基本使用

    WKWebView的基本使用和几个基本的代理方法

     1 #import "ViewController.h"
     2 #import <WebKit/WebKit.h>
     3 @interface ViewController ()<WKNavigationDelegate,WKUIDelegate>
     4 @property(nonatomic,strong)WKWebView *webView;
     5 @end
     6 
     7 @implementation ViewController
     8 
     9 - (void)viewDidLoad {
    10     [super viewDidLoad];
    11     UIImage *bgImage = [UIImage imageNamed:@"圆角矩形"];
    12     [self.navigationController.navigationBar setBackgroundImage:bgImage forBarMetrics:UIBarMetricsDefault];
    13     [self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
    14     // Do any additional setup after loading the view, typically from a nib.
    15     self.webView = [[WKWebView alloc] initWithFrame:self.view.bounds];
    16     [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.hao123.com"]]];
    17     self.webView.navigationDelegate = self;
    18     self.webView.allowsBackForwardNavigationGestures = YES;
    19     [self.view addSubview:self.webView];
    20 }
    21 
    22 -(void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation
    23 {
    24     NSLog(@"当页面开始加载时");
    25 }
    26 -(void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation
    27 {
    28     NSLog(@"当内容开始返回时调用");
    29 }
    30 -(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
    31 {
    32     NSLog(@"页面加载完成之后调用");
    33     [_webView evaluateJavaScript:@"document.body.offsetHeight" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
    34         NSLog(@"abc:%f",[result doubleValue]);
    35     }];
    36 
    37 }
    38 -(void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(nonnull NSError *)error
    39 {
    40     NSLog(@"页面加载失败时调用");
    41 }
    42 //页面跳转的代理方法
    43 -(void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation
    44 {
    45     NSLog(@" 接收到服务器跳转请求之后调用");
    46 }
    47 -(void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler
    48 {
    49     NSLog(@"在收到响应后,决定是否跳转");
    50     NSLog(@"%@",navigationResponse.response);
    51     decisionHandler(WKNavigationResponsePolicyAllow);
    52 
    53 }
    54 -(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
    55 {
    56     NSLog(@"在发送请求之前,决定是否跳转");
    57     NSLog(@"%@",navigationAction.request.URL.absoluteString);
    58     if ([navigationAction.request.URL.absoluteString rangeOfString:@"https://www.baidu.com"].location != NSNotFound) {
    59         decisionHandler(WKNavigationActionPolicyAllow);
    60     }else{
    61         decisionHandler(WKNavigationActionPolicyAllow);
    62     }
    63 }
  • 相关阅读:
    DRF 版本和认证
    DRF 视图和路由
    DRF 序列化组件
    RESTful
    Vuex以及axios
    npm、webpack、vue-cli
    Vue 生命周期
    Vue Router
    Vue 组件
    Vue 快速入门
  • 原文地址:https://www.cnblogs.com/kfgcs/p/6386336.html
Copyright © 2011-2022 走看看