以下代码在Fragment中设计,用于调用javascript文件(MyMap)并调用函数(updateJSONandMap)。该函数本身将JSON发送到服务器并采用三个参数。它可以在第一个参数被硬编码时使用(" Incident")但在创建变量时不起作用。
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.loadUrl("file:///android_asset/MyMap.html");
webview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
webview.loadUrl("javascript:updateJSONandMap('Incident'," + latitude + "," + longitude + ")");
}
});
JSON的文本块是一个字符串
Event: {
Action: 'PUT',
Value: {"S": UserEvent}
},
显而易见的是创建一个变量
final String incident = "incident2";
然后
webview.loadUrl("javascript:updateJSONandMap(" + incident + "," + latitude + "," + longitude + ")");
不会创建错误,但不会将JSON发送到服务器
答案 0 :(得分:1)
编辑:我认为您的字符串中可能存在错误,第一个incident
被单引号包围。这个字符串会起作用吗?
"javascript:updateJSONandMap('" + incident + "'," + latitude + "," + longitude + ")";
如果你这样做会怎么样?
final String incident = "incident2";
String loadUrlParam = `javascript:updateJSONandMap('${incident}', ${latitude}, ${longitude})`;
webview.loadUrl(loadUrlParam);