今天也遇到这样的问题,我将OCR获取到的内容result(String类型),直接
JSUtil.execCallback(pWebView, CallBackID, result, JSUtil.OK, false);
js端接收不到
然后我改成
JSUtil.execCallback(pWebView, CallBackID, “成功”, JSUtil.OK, false);
js端能接收到
追踪JSUtil.execCallback的实现:
/** @deprecated */
@Deprecated
public static void execCallback(IWebview var0, String var1, String var2, int var3, boolean var4, boolean var5) {
if (var0 != null) {
String var6 = "(function(w,n){try{var plus=((w.__html5plus__&&w.__html5plus__.isReady)?w.__html5plus__:(n.plus&&n.plus.isReady)?n.plus:window.plus);var result= {};result.status = %d;result.message = " + (var4 ? "%s" : "'%s'") + ";result.keepCallback = " + var5 + ";plus && plus.bridge.callbackFromNative('%s', result);}catch(e){console.error(e.stack)};})(window,navigator);";
var6 = String.format(var6, var3, var2, var1);
var0.executeScript(var6);
}
}
最后返回都是拼接js代码执行的,注意这句:var4 ? "%s" : "'%s'",应该是我们返回的字符串有换行符之类的吧。
我的解决方案是将结果放到JSONObject里返回。
2 个回复
小权
今天也遇到这样的问题,我将OCR获取到的内容result(String类型),直接
js端接收不到
然后我改成
js端能接收到
追踪JSUtil.execCallback的实现:
最后返回都是拼接js代码执行的,注意这句:var4 ? "%s" : "'%s'",应该是我们返回的字符串有换行符之类的吧。
我的解决方案是将结果放到JSONObject里返回。
2***@qq.com
JSUtil.execCallback(iWebview, CallBackID,"成功",JSUtil.OK, false);
我这样都返回不成功,能接收到。。