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

调用javascript函数不接受变量参数,java,android,Java,Android,下面的代码是在一个片段中设计的,用于调用javascript文件(MyMap)和函数(updateJSONandMap)。函数本身向服务器发送一个JSON,并接受三个参数。当第一个参数被硬编码(“事件”)时,它工作,但当我创建变量时,它将不工作 webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setDomStorageEnabled(true);

下面的代码是在一个片段中设计的,用于调用javascript文件(MyMap)和函数(updateJSONandMap)。函数本身向服务器发送一个JSON,并接受三个参数。当第一个参数被硬编码(“事件”)时,它工作,但当我创建变量时,它将不工作

            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发送到服务器编辑:我认为您的字符串中可能有错误,第一个
事件
被单个引号包围。这根绳子能用吗

"javascript:updateJSONandMap('" + incident + "'," + latitude + "," + longitude + ")";
如果你这样做怎么办

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

webview.loadUrl(loadUrlParam);

很明显,incident2是一个变量,“incident2”是一个字符串,我刚在输入答案的时候弄明白了这一点!谢谢-webview.loadUrl(“javascript:updateJSONandMap(“+incident+”,“+latitude+”,“+longitude+”));