WebView是Android提供的一個WEB瀏覽控件,通過這個空間可以調用指定網址的網頁以顯示HTML標記的頁面。
可以採用如下的方法來顯示Web頁面,如下所示:
WebVIew webView=new WebView(this);
webView.loadUri("http://www.hao123.com");
或者採用如下方法來顯示已經定義的頁面如下所示:
WebView webView=new WebView(this);
String str="<html><body>I'm yangyancheng</body></html>"
webView.loadData(str,"text/html","utf-8");
可以設置以下幾個參數
webView.getSettings().setJavaScriptEnabled(
true
);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setHorizontalScrollBarEnabled(
false
);
webView.getSettings().setSupportZoom(
true
);
webView.getSettings().setBuiltInZoomControls(
true
);
webView.setInitialScale(
70
);
webView.setHorizontalScrollbarOverlay(
true
);
WebView提供數個可以定製的機制,有以下四個子類可以進行選擇:
1,創建和設置WebViewClient,當這個類被調用時,會影響到網頁顯示的內容,如錯誤的信息,和窗體的提交,可以再次重新修訂該在網頁的網址,,
2.創建和設置WebChromeClient,此類用來設置瀏覽器的用戶接口發生的時間,如精度更新,JavaScript事件的通知等事件,,
3. 利用WebSetting來進行一些WebView參數的設置,
4,使用addJavascriptInterface方法來與javascript通信,
WebView與JavaScript相互通信,
1.javascript腳本調用android應用程序
可以採用如下的方法
WebView webView=new WebView(this)
webView.getSettings().setJavaScriptEnable(true);
webView.loadUrl(網址);
webView.addJavascriptInterface(this,"android");
在應用程序中添加被javascript調用的函數 如下所示:
public void js(parameter)
{
}
在android中的javascript中使用如下的方式來與應用程序進行交互
<script type="text/javascript">
function ok(){
android.js(parameter);
}
</script>
WebView調用javascript中的函數,如下所示:
WebView webView=new WebView(this)
webView.getSettings().setJavaScriptEnable(true);
webView.loadUrl(網址);
webView.addJavascriptInterface(new JsInterface(),"android");
public void onClick(){
webView.loadUrl("javascript:changeImage01()");
}
}
<a onClick="window.android.onClick()"><img id="image" src="navy01.jpg"/></a>
<script language="javascript">
function changeImage01(){
document.getElementById("image").src="navy01.jpg";
}
</script>
通過javascript調用android應用程序中的代碼,在android應用程序中再次調用javascript代碼來實現改變WebView控件上的內容的目的。。。
通過實現WebChromeClient類來實現對javascript中的alert對話框方法調用的攔截。
繼承WebChromeClient類來實現其中的onJsAlert(WebView view,String url,String message,Jsresult ressult)方法進行覆蓋對javascript中的alert進行連接