将变量从android传递给javascript
问题描述:
我在将数据/变量从android传递给javascript时出现问题。将变量从android传递给javascript
WebView webview = (WebView) findViewById(R.id.webview_graph);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
String temp = "yoolod";
webview.loadUrl("file:///android_asset/test.html");
webview.loadUrl("javascript:sample(\""+temp+"\")");
中的test.html
<!DOCTYPE html>
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
function sample(var){ //this is line 10
document.write (var);
//echo var;
}
</script>
</head>
<body>
</body>
</html>
我一直有这样的,错误并不能找到解决办法呢。希望您能够帮助我。
“未捕获的ReferenceError:样品没有定义”,源:(1) “未捕获的SyntaxError:意外令牌VAR”,来源:文件:///android_asset/test.html(10)
答
把对单引号的价值,下面我已经改变你的代码,采取该代码,并再次尝试。
webview.loadUrl("javascript:sample('"+temp+"')");
我已经在edittext中设置了值(这是从android获得)。
所以你会得到HTML中的编辑文本的价值。
的test.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width; user-scalable=0;" />
<script language="javascript">
// getting Value from Android/ios
function sample(temp){
var textcontrol = document.getElementById("txtname");
textcontrol.value = temp;
}
</script>
<title>My HTML</title>
</head>
<body >
<h1>My HTML </h1>
<br>
<input type="text" id="txtname" />
</body>
</html>
答
搜索和审判错误后,我莫名其妙地发现了一种方法。我只是把loadurl放在webview的完成内部。
webview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String loc) {
view.loadUrl("javascript:sample('"+temp+"')");
}
});
+0
感谢@Mfp的提示。 :) – chkm8 2014-08-30 05:57:36
我试图代码以上先生但我仍然有错误 “未捕获的ReferenceError:样品没有定义”,来源:(1)。 我甚至尝试过上面的html,但仍然一样。我错过了什么先生?顺便说一句,谢谢 – chkm8 2014-08-30 05:14:16
,我会用这个谷歌图表,我通过动态数据从android到javascript。也许你可以给一些提示,以更好地做到这一点。 – chkm8 2014-08-30 05:16:08