webview設定載入進度條、遮蔽跳轉到預設瀏覽器、對話方塊
阿新 • • 發佈:2019-01-26
package cn.itcast.design.note5.webview; import android.app.Activity; import android.app.ProgressDialog; import android.graphics.Bitmap; import android.os.Bundle; import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; import cn.itcast.design.R; public class MyWebViewActivity extends Activity { public void load(View view) { // ③ 指定 地址 // webView.loadUrl(訪問地址); // webView.loadUrl("file:///android_asset/html/pritection_help.html"); // webView.loadUrl("http://192.168.18.23:8080/web/html/protection_help.html"); // ④ 傳入 原始碼字串 // webView.loadData(原始碼字串, 網路媒體型別 image/png image/jeg, 編碼); // try { // InputStream input = getAssets().open("help.html"); // byte[] data = StreamUtil.readInputStream(input); // webView.loadData(new String(data, "UTF-8"), "text/html", "UTF-8"); // } catch (Exception e) { // e.printStackTrace(); // } // 實時獲取進度載入變化的輔助類 WebChromeClient client1 = new WebChromeClient() { // 回撥函式:條件 進度發生改變的時候呼叫 newProgress 最新進度 @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); System.out.println("onProgressChanged " + newProgress); if (newProgress == 100) { progress.setVisibility(View.GONE); } else { progress.setVisibility(View.VISIBLE); progress.setProgress(newProgress); } } }; webView.setWebChromeClient(client1); // 輔助類二 WebViewClient WebViewClient client2 = new WebViewClient() { // 回撥函式:條件 0 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); dialog = new ProgressDialog(MyWebViewActivity.this); dialog.setTitle("傳智瀏覽器"); dialog.setMessage("正在拼命載入中..."); dialog.show(); } // 回撥函式:條件 100 @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); dialog.dismiss(); dialog = null; } }; webView.setWebViewClient(client2); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setBuiltInZoomControls(true); webView.loadUrl("http://192.168.18.23:8080/"); // ① 佈局progressBar 100 0--100 // ② 獲取進度值 載入多少顯示多少 // progress.setProgress(progress) } private ProgressDialog dialog = null; private WebView webView = null; private ProgressBar progress; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); // ① 建立 Activity // ② 佈局Layout --WebView setContentView(R.layout.activity_webview); webView = (WebView) findViewById(R.id.webview); progress = (ProgressBar) findViewById(R.id.progress); } }