2014-08-30 135 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