self.webView evaluateJavaScript error 问题

1,790 阅读1分钟

最近碰到一个棘手的问题,先描述一下问题:我们项目里的帮助反馈用的webview,webview请求数据调用的是原生的方法,然后成功后,我们再通过h5约定的一个方法把数据回传给h5,他们负责展示。可是最近测试反馈一个问题:feedback分页加载,请求第三页数据一直loading,直到超时。我经过调试终于定位出了问题:原来是第三页数据里有特殊字符,然后调用js的下面方法时报错了

  if (script) {
            [self.webView evaluateJavaScript:script completionHandler:^(id _Nullable result, NSError * _Nullable error) {
                if (result) {
                    
                }
                if (error) {
                    
                }
            }];
        }

百度google了半天,结果说的最多是说我调用的时机不对,很明显我这里不是这个原因。我这里报错是说我拼接出来的字符串有问题。虽然知道大致的原因,但是还是没有找到解决办法。直到问了同学,他之前研究过wkwebviewbridge的源码,说到里边有类似的地方,果然我把里边字符串处理的方法粘贴出来,问题得到了解决。

具体为什么这么替换还需要继续研究,特别记录一下这个问题。

js在线格式检查