1. code
String str = "<html><head></head><body>" +
"<button onClick='javascript:js.setJava(\"HELLO\")' >執行java的function做處理</button>" +
"<div id='output'>output:</div>" +
"<script>document.write(js.getJava());</script>" +
"</body></html>";
wv = (WebView)findViewById(R.id.webView1);
wv.addJavascriptInterface(this, "js");
wv.getSettings().setJavaScriptEnabled(true);
wv.loadDataWithBaseURL("about:blank",str, "text/html", "utf-8", null);
public void setJava(String value){
Log.e("HELLO", value);
}
public String getJava(){
return "HELLO";
}
2. 說明
- javascript:js.setJava(\"HELLO\"); //呼叫 java中的程式function
- <script>document.write(js.getJava());</script> //從java中的function取得值
- wv.addJavascriptInterface(this, "js"); // 設定webview和javascript溝通的橋梁,別名js
- wv.getSettings().setJavaScriptEnabled(true); //是否允許webveiw執行javascript代碼
- wv.loadDataWithBaseURL("about:blank",str, "text/html", "utf-8", null); //帶入字串
- wv.loadUrl("http://XXX/aaa.php"); //帶入網址
- wv.loadUrl(file:///android_asset/aaa.html); //帶入檔案,檔案位置必須要放置assets/www目錄下才可。至於大多人說放置assets就可以使用,在下是執行都會錯誤
沒有留言:
張貼留言