我在将数据/变量从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) “Uncaught SyntaxError:Unexpected token var”,source:file:///android_asset/test.html(10)
答案 0 :(得分:0)
将值放入单引号中,下面我已更改您的代码,接受该代码并重试。
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>
答案 1 :(得分:0)
webview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String loc) {
view.loadUrl("javascript:sample('"+temp+"')");
}
});