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