當你有一個的WebView你可以設置一個Webchormeclient或Webviewclient,則webchromeclient將類似於您的Chrome桌面瀏覽器。另一種選擇是使用Webviewclient這個網頁流量的客戶端可以根據需要將可配置,您可以添加一個「接口」來稱呼從Java代碼JavaScript函數,或Java函數從您的JavaScript代碼。 該接口是一個類,可以是這樣的: 最後一類JavaScriptInterface {
public void myalert(String message){
new AlertDialog.Builder(wview.getContext()).setMessage(message).setNeutralButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
}).show();
}
web視圖具有「附加」這一類的JavaScript的方法:
wview.addJavascriptInterface(new JavaScriptInterface(), "interface);
一旦你添加JavascriptInterface,您可以從Javascript代碼調用該方法myalert(「HI」),這樣做,你將不得不做一些事情,如:
window.interface.myalert("hi") //This is called in the Javascript
,如果你想從Java代碼調用JavaScript你可以做這樣的事情:
wview.loadUrl("javascript:changeValues('"+name+"','"+id+"')");//this will call a Javascript function called changeValues, and will pass to variables (name, id)
綜上所述,在webchromeclient更容易使用,但webviewclient可以讓你更多的配置。之前,也許你想了解一下phonegap,這是一個開發Webapps x平臺的框架。 希望你這個快速解釋能幫助你一點。
PS:對於第二個選項,您可以存儲所有你的SD卡需要。
乾杯的答覆,但JavaScript文件必須放置在哪裏?並說,如果我有一個叫做'myAlert'的函數叫做alerts.js,我需要提供這個文件名還是android只讀了它們? – Katana24 2012-03-06 22:21:45
您可以將javascript文件存儲在SD卡中(您將能夠修改JavaScript文件),在asset_folder中(您將能夠使用它但不能修改它),或者將其作爲普通頁面存儲在服務器中,腳本只會在您連接到互聯網時才加載。 – jsaye 2012-03-06 22:26:22
如果我當瀏覽器加載網頁是沒有錯的,這也加載所有的JavaScript,所以你不會有引用該文件,但林不知道... – jsaye 2012-03-06 22:27:25