iOS WKwebVIew使用的一些体会

  据说UIwebview过一段时间使用,苹果审核就会打回来,要换成WKwebview;而且WKwebview支持https,打开页面有个进度条比较智能;

1,加载页面;继承封装基类YFBaseWebViewController,根据url拿到请求,加载,添加控件就行

  NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.urlStr]];

 

    [self.wk_WebView loadRequest:request];

 

    [self setviewPushTitle:@"扫码支付"];

    [self.view addSubview:self.wk_WebView];

2,搭桥JS交互,

stringByEvaluatingJavaScriptFromString 替换成

  [self.wk_WebView evaluateJavaScript:@“传进来的” completionHandler:^(NSString * _Nullable title, NSError * _Nullable error) {

                  descriptionStr= title;//这里是拿到的结果

    }];

方法交互,这块和以前UIwebview基本一样,只是传进去的是_bridge = [WebViewJavascriptBridge bridgeForWebView:self.wk_WebView];

后来发现不能点,以为搭桥的类也要替换,后来发现是userAgent 换成wk以后获取为空了,所以还是还原了,点击事件才能监听。

- (void)setUserAgent{

    UIWebView *web = [[UIWebView alloc] init];

    NSString* userAgent = [web stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];

    DLog(@"userAgent = %@",userAgent);

    NSString *ua = [NSString stringWithFormat:@"%@\\%@",

                    userAgent,

                    @"FuKaBrowser"];

    DLog(@"ua = %@",ua);

    [[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent" : ua, @"User-Agent" : ua}];

}

 

3,关于加载标题,基类里面支持的是人家网页title写好的那种,由于调试到一个福讯扫码的页面时候,title竟然为空,当前控制器设置了好几种title,也是被@“”覆盖掉。于是无奈,基类里面自己写了个方法,想传过去

@property(nonatomic,copy)NSString *viewPushTitle;

//set方法  这里的set后面 要和熟悉对上才行,不然报错

-(NSString *)setviewPushTitle:(NSString *)title{

    _viewPushTitle=title;

    return _viewPushTitle;

}

  //导航栏配置  如果有就用网页的  没有就用自己传进来的 这里判断空不能用title!=nil  ,控制不了空串,可以用length去判断。这点很重要。

    [webView evaluateJavaScript:@"document.title" completionHandler:^(id _Nullable title, NSError * _Nullable error) {

        if ([title length]>0) {

            self.navigationItem.title = title;

        }

        else{

            self.navigationItem.title = _viewPushTitle;

        }

        

    }];

 

//设置标题

[self setviewPushTitle:@"扫码支付"];

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值