调用javascript函数不接受变量参数

时间:2017-01-27 01:06:04

标签: java android

以下代码在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发送到服务器

1 个答案:

答案 0 :(得分:1)

编辑:我认为您的字符串中可能存在错误,第一个incident被单引号包围。这个字符串会起作用吗?

"javascript:updateJSONandMap('" + incident + "'," + latitude + "," + longitude + ")";

如果你这样做会怎么样?

final String incident = "incident2";
String loadUrlParam = `javascript:updateJSONandMap('${incident}', ${latitude}, ${longitude})`;

webview.loadUrl(loadUrlParam);