WebView常用介面整理
阿新 • • 發佈:2019-02-03
webView有兩個方法 setWebChromeClient 和 setWebClient
1. setWebClient 主要是處理解析、渲染網頁等瀏覽器做的事情。
2. setWebChromeClient 主要是輔助webView處理JavaScript的對話方塊、網站圖示、網站title、載入進度等。
WebViewClient 就是幫助WebView處理各種通知、請求事件等。
一、載入資源
1.1 載入本地資源
webView = (WebView) findViewById(R.id.webView); webView.loadUrl("file:///android_asset/example.html");
1.2 載入網路資源
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");
如果上面的載入不出來的話,實際使用如下:
二、webSetting 的常用方法webView.loadUrl("http://baidu.com"); webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //返回值是true的時候控制去WebView開啟,為false呼叫系統瀏覽器或第三方瀏覽器 view.loadUrl(url); return true; } });
setJavaScriptEnabled(true); //支援js setPluginsEnabled(true); //支援外掛 setLoadsImagesAutomatically(true); //支援自動載入圖片 setUseWideViewPort(false); //將圖片調整到適合webview的大小 setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支援內容重新佈局 setLoadWithOverviewMode(true); // 縮放至螢幕的大小 settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); settings.setLoadWithOverviewMode(true); //自適應螢幕 settings.setMinimumFontSize(18); //設定最小的字型大小 settings.setSupportZoom(true); //支援縮放 settings.setBuiltInZoomControls(true); //支援手勢縮放 settings.setDisplayZoomControls(false); //是否顯示縮放按鈕 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); //啟動硬體加速 }
三、WebClient的的常用方法
onLoadResource(WebView view, String url) // 在載入頁面資源時會呼叫,每一個資源(比如圖片)的載入都會呼叫一次。
onPageStarted(WebView view, String url, Bitmap favicon) //這個事件就是開始載入頁面呼叫的,通常我們可以在這設定一個loading的頁面,告訴使用者程式在等待網路響應。
onPageFinished(WebView view, String url) //在頁面載入結束時呼叫。同樣道理,我們知道一個頁面載入完成,於是我們可以關閉loading 條,切換程式動作。
onReceivedError(WebView view, int errorCode, String description, String failingUrl)// (報告錯誤資訊)
onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,String realm)//(獲取返回資訊授權請求)
onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) //重寫此方法可以讓webview處理https請求。
shouldOverrideUrlLoading(WebView view, String url)
//在點選請求的是連結是才會呼叫,重寫此方法返回true表明點選網頁裡面的連結還是在當前的webview裡跳轉,不跳到瀏覽器那邊。這個函式我們可以做很多操作,比如我們讀取到某些特殊的URL,於是就可以不開啟地址,取消這個操作,進行預先定義的其他操作,這對一個程式是非常必要的。
四、按返回鍵時,不退出程式而是返回上一瀏覽頁面
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();//返回上一頁面
return true;
}
return super.onKeyDown(keyCode, event);
}