我从服务器收到了一个有效的 JSON,但是 Chromium 告诉我这个错误:
"Uncaught SyntaxError: Unexpected identifier", source: (1)
我所知道的是,当我调用以下方法时:
stringBuilder.append("javascript: javascriptBridge.getHandlers().showPost('");
stringBuilder.append(e.getData());
stringBuilder.append("');");
webView.loadUrl(stringBuilder.toString());
其中 e.getData()
是有效的 JSON,它实际上不会在另一端被调用。 JSON 中的某些内容被错误地解释为 javascript 函数参数
javascriptBridge.registerHandler('showPost', function (data) {
alert('showpost'); //this is not called
});
它适用于其他数据,以前甚至适用于 JSON,这就是它奇怪的原因。任何想法如何解决它?可能是某个 Angular 色让它崩溃了。
最佳答案
由于 commons-lang3
,以下修复了它:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("javascript: javascriptBridge.getHandlers().showPost('");
stringBuilder.append(StringEscapeUtils.escapeEcmaScript(e.getData()));
stringBuilder.append("');");
webView.loadUrl(stringBuilder.toString());
关于javascript - Android 混合应用程序给我 "Uncaught SyntaxError: Unexpected identifier",源 : (1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27425573/