2014-08-30 138 views
0

我在将数据/变量从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)

回答

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> 
+0

我试图代码以上先生但我仍然有错误 “未捕获的ReferenceError:样品没有定义”,来源:(1)。 我甚至尝试过上面的html,但仍然一样。我错过了什么先生?顺便说一句,谢谢 – chkm8 2014-08-30 05:14:16

+0

,我会用这个谷歌图表,我通过动态数据从android到javascript。也许你可以给一些提示,以更好地做到这一点。 – chkm8 2014-08-30 05:16:08

0

搜索和审判错误后,我莫名其妙地发现了一种方法。我只是把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