Android 使用WebView在界面中顯示網頁


通過Intent調用系統瀏覽器

Uri uri = Uri.parse(url);      //url為你要鏈接的地址

Intent intent = new Intent(Intent.ACTION_VIEW, url);

startActivity(intent);

 

將WebView加入你的應用

要在你的應用中加入WebView,只需要在你的活動布局中加入<WebView>元素即可

<WebView></WebView>

要在WebView加載頁面,使用loadUrl

web資源:webView.loadUrl("http://www.baidu.com");

本地文件用:webView.loadUrl( "file:///android_asset/XX.html " ); 

本地文件存放在:assets文件中

 

//使頁面獲得焦點

webView.requestFocus();

 

獲取網絡使用權限

在它有效工作之前,你要保證你的應用能訪問網絡。要訪問網絡,需要在你的配置

 

使用WebView加載頁面

 

處理頁面導航

當用戶點擊一個WebView中的頁面鏈接時,通常由默認的瀏覽器打開並加載目標URL。<br>
那么如果想在WebView中打開鏈接,則需呀在WebView中覆蓋這一行為。<br>
(代碼:webView.setWebViewClient(new WebViewClient());)

 

在WebView中使用Javascript

如果想在加載webView的web頁面中使用JavaScript,則需要在webView中啟用JavaScript。

啟用JavaScript:

首先,通過在WebView中帶有的WebSettings來啟用;

然后,用getSettings獲取WebSettings的值,

最后用setJavaScriptEnable來啟用JavaScript


WebView webvView=(WebView)findViewById(R.id.webView);
WebSettings webSettings =webView.getSettings();
webSettings.setJavaScriptEnabled(true);

 

后退與前進

當webView覆蓋了URl加載,它會自動生成歷史訪問記錄,可以通過goBack()或goForward()向前或向后訪問已訪問的站點。
代碼:
public boolean onKeyDown(int keyCode,KeyEvent event){
  if((keyCode= =KeyEvent.KEYCODE_BACK)&&myWebView.canGoBack(){
    webView.goBack();
    return true;
  }
  return super.onKeyDown(keyCode,even);

}

 

判斷頁面加載過程

有的頁面可能加載緩慢,所以要去判斷頁面的加載過程,制作進度條來給用戶好的體驗。

webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
  // newProgress時0-100的整數,表示頁面加載的進度。當newProgress=100時代表頁面加載完成
  if(newProgress==100)

  {
    //網頁加載完畢,關閉progressDialog
    CloseDialog();
  }

  else

  {
    //頁面正在加載,打開progressDialog
    OpenDialog(newProgress);
  }
  super.onProgressChanged(view, newProgress);
}

private void OpenDialog(int newProgress) {
  // TODO Auto-generated method stub
  if(dialog==null)

  {
    dialog=new ProgressDialog(MainActivity.this );
    dialog.setTitle("正在打開網頁");//設置Dialog的標題
    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//設置進度條的樣式
    dialog.setProgress(newProgress);//顯示newProgress的進度
    dialog.show();//在頁面上顯示進度
  }

  else

  {

    dialog.setProgress(newProgress);
  }

}

 

WebView緩存的運用

WebView緩存運用(當加載頁面是將頁面內容儲存在本地,下一次瀏覽此頁面是從本地獲取資源)
優先使用緩存:webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

不使用緩存:
webView。getSettings().setCacheMode(WebSettings.LOAD_CACHE_NO_NETWORK);

 

在它有效工作之前,你要保證你的應用能訪問網絡。要訪問網絡,需要在你的配置文件中獲取INTERNET權限。

<mainfest...>

<uses-permission android:name="android.permission.INTERNET"> /

>

...

</manifest>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM