Android混合应用程序给了我" Uncaught SyntaxError:意外的标识符",来源:(1)

时间:2014-12-11 14:47:50

标签: javascript android json webview

我从服务器收到有效的JSON ,但Chromium告诉我这个错误:

  

"未捕获的SyntaxError:意外的标识符",来源:(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,这就是为什么它很奇怪。任何想法如何解决它?可能是某些角色崩溃了。

2 个答案:

答案 0 :(得分:2)

以下修正了它,感谢commons-lang3

 StringBuilder stringBuilder = new StringBuilder();
 stringBuilder.append("javascript: javascriptBridge.getHandlers().showPost('");
 stringBuilder.append(StringEscapeUtils.escapeEcmaScript(e.getData()));
 stringBuilder.append("');");
 webView.loadUrl(stringBuilder.toString());

答案 1 :(得分:1)

StringEscapeUtils.escapeEcmaScript解决了问题,将此库添加到您的gradle:

compile 'org.apache.commons:commons-lang3:3.4'