wkwebview 通过加载请求获取信息

2018-02-03  本文已影响230人  xiao小马哥

在项目中用WKWebView根据请求链接加载活动,产品要求在上加一个分享按钮将这活动分享出去,但是在当前的页面也就只能获取请求活动的链接,分享的模板需要有标题,子标题,还有图片,还有点开分享出去的跳转链接。不能在这个页面获取到,我们和前端协商,在点击分享的时候,他加载一个我们特定的协议头,里面填写我们所需要的所有参数,我们拦截这个协议的请求,截取对应的参数,设置分享的内容,分享成功在回调他成功的方法。

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    if([navigationAction.request.URL.scheme containsString:@"自己定义的协议头"]){
  // 里面通过参数取出自己需要的内容,注意链接和文字要转义之后再拼接过来,要不iOS端会解析错误,在iOS10和iOS11 上解析出来的内容还不一样,
}

分享成功在回调H5的方法

      /// 方法名
      NSString *js_result = [NSString stringWithFormat:@"%@()", self.shareSuccessH5Action];
        [self.webView evaluateJavaScript:js_result completionHandler:^(id _Nullable response, NSError * _Nullable error) {
            
        }];
上一篇下一篇

猜你喜欢

热点阅读