美文网首页
WKWebView和iOS交互问题排查处理

WKWebView和iOS交互问题排查处理

作者: 数字d | 来源:发表于2020-11-17 15:17 被阅读0次

    1.页面悬浮按钮不显示问题,图大概和这个简书作者的一样。https://www.jianshu.com/p/e376f352e282
    按照上面的方法,没解决。最后我直接修改了wkwebview的frame,问题解决
    viewWillAppear中

            self.wkWebView.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - NavigationHeight - TabbarBottom);
    

    2.h5页面调用OC方法不起作用,把网页路径放在safari浏览器上发现这行代码报错。
    后来对比了一下前面能调用成功的方法,发现这个
    window.webkit.messageHandlers.Location.postMessage必须传个参数iOS那边才能成功调用Location方法

      window.webkit.messageHandlers.Location.postMessage();
    
    

    3.关于打包内容中含有UIWebview的内容,2020年5月以后就不能在项目中使用UIwebview了。虽然项目中引入了UIWebview,但是我没有使用,我打包ipa,upload成功了之后。从appstore官网里构建版本看不到这个已经upload的构建版本。后来把webview的相关文件删掉,然后重新打包upload之后,几分钟就能看到构建版本里面有记录。
    检查项目中是否有uiwebview,我都是搜索字符串替换删掉(太傻太天真)。
    实际的操作流程是:https://www.jianshu.com/p/3a645500d461

    4.接入第三方H5页面跳微信和支付宝支付失败
    app业务中接入有第三方的游戏,话费充值,加油等H5模块,游戏的支付充值不需要做任何处理,但是话费充值和加油需要做。(这和第三方实现H5的方式有关)
    对话费充值和加油模块的统一处理方式:

    
    #pragma mark - WKNavigationDelegate
    // 在发送请求之前,决定是否跳转
    - (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation {
        [webView addObserver:self forKeyPath:@"URL" options:NSKeyValueObservingOptionNew context:nil];
    }
    
    // KVO 接收到通知时的方法
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
        if ([keyPath isEqualToString:@"URL"]) {
            // 可以在这里进行拦截并做相应的处理
            if ([self.wkWebView.URL.absoluteString hasPrefix:@"weixin://wap/pay"] || [self.wkWebView.URL.absoluteString hasPrefix:@"alipay://alipay"]) {
                NSURL *url = [NSURL URLWithString:self.wkWebView.URL.absoluteString];
                [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
            }
            
        }
    }
    

    在didStartProvisionalNavigation方法里面监听当前WKWebview的URL,在处理时候将URL进行拦截,如果字符串中包含@"alipay://alipay"或者@"weixin://wap/pay",那么直接openURL的方式打开该链接。

    相关文章

      网友评论

          本文标题:WKWebView和iOS交互问题排查处理

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