Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android_WebView_全屏

Android_WebView_全屏

編輯:關於Android編程

WebView(網絡視圖)能加載顯示網頁,可以將其視為一個浏覽器。
它使用了WebKit渲染引擎加載顯示網頁,實現WebView有以下兩種不同的方法:
第一種方法的步驟:
1.在要Activity中實例化WebView組件:WebView webView = new WebView(this);
2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁:
  互聯網用:webView.loadUrl("http://www.google.com"); 
  本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 
  本地文件存放在:assets 文件中
3.調用Activity的setContentView( )方法來顯示網頁視圖
4.用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,
需要覆蓋覆蓋Activity類的onKeyDown()方法,
如果不做任何處理,點擊系統回退剪鍵,整個浏覽器會調用finish()而結束自身,而不是回退到上一頁面
5.需要在AndroidManifest.xml文件中添加權限,否則會出現Web page not available錯誤。
  
  
第二種方法的步驟:
1、在布局文件中聲明WebView
2、在Activity中實例化WebView
3、調用WebView的loadUrl( )方法,設置WevView要顯示的網頁
4、為了讓WebView能夠響應超鏈接功能,調用setWebViewClient( )方法,設置  WebView視圖
5、用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,
需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,
點擊系統回退剪鍵,整個浏覽器會調用finish()而結束自身,而不是回退到上一頁面
6、需要在AndroidManifest.xml文件中添加權限,否則出現Web page not available錯誤。

 
   
浏覽器控件是每個開發環境都具備的,windows的有webBrowser,
android和ios都有webView。只是其引擎不同,相對於微軟的webBrowser,
android及ios的webview的引擎都是webkit,對Html5提供支持。
本篇主要介紹android的webview之強大。
A.    webview組件如何使用
 
1)       添加權限:AndroidManifest.xml中必須使用許可"android.permission.INTERNET",
否則會出Web page not available錯誤。
2)       在要Activity中生成一個WebView組件:
WebView webView = new WebView(this);
或者可以在activity的layout文件裡添加webview控件:

3)       設置WebView基本信息:
          如果訪問的頁面中有Javascript,則webview必須設置支持Javascript。
          webview.getSettings().setJavaScriptEnabled(true);  
          觸摸焦點起作用
          requestFocus();
          取消滾動條
          this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);
 
4)       設置WevView要顯示的網頁:
          互聯網用:webView.loadUrl("http://www.google.com"); 
          本地文件用:webView.loadUrl("file:///android_asset/XX.html");  
          本地文件存放在:assets文件中
5)       如果希望點擊鏈接由自己處理,而不是新開Android的系統browser中響應該鏈接。
給WebView添加一個事件監聽對象(WebViewClient)並重寫其中的一些方法:
 shouldOverrideUrlLoading:對網頁中超鏈接按鈕的響應。
 當按下某個連接時WebViewClient會調用這個方法,
 並傳遞參數:按下的url。比如當webview內嵌網頁的某個數字被點擊時,
 它會自動認為這是一個電話請求,會傳遞url:tel:123,
 如果你不希望如此可通過重寫shouldOverrideUrlLoading函數解決:

        另外還有其他一些可重寫的方法 
1,接收到Http請求的事件
onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, 
String host, String realm) 
2,打開鏈接前的事件
public boolean shouldOverrideUrlLoading(WebView view, String url) {
 view.loadUrl(url); return true; } 
這個函數我們可以做很多操作,比如我們讀取到某些特殊的URL,於是就可以不打開地址,取消這個操作,
進行預先定義的其他操作,這對一個程序是非常必要的。
 
3,載入頁面完成的事件
public void onPageFinished(WebView view, String url){ } 
同樣道理,我們知道一個頁面載入完成,於是我們可以關閉loading條,切換程序動作。
 
4,載入頁面開始的事件
public void onPageStarted(WebView view, String url, Bitmap favicon) { } 
這個事件就是開始載入頁面調用的,通常我們可以在這設定一個loading的頁面,告訴用戶程序在等待網絡響應。
 
通過這幾個事件,我們可以很輕松的控制程序操作,一邊用著浏覽器顯示內容,
一邊監控著用戶操作實現我們需要的各種顯示方式,同時可以防止用戶產生誤操作。
      
6)       如果用webview點鏈接看了很多頁以後,如果不做任何處理,點擊系統“Back”鍵,
整個浏覽器會調用finish()而結束自身,如果希望浏覽的網頁回退而不是退出浏覽器,
需要在當前Activity中處理並消費掉該Back事件。
       覆蓋Activity類的onKeyDown(int keyCoder,KeyEvent event)方法。    

B.    Webview與js交互
Webview與js的雙向交互才是android的webview強大所在
首先,webview可以定義一個在其內嵌頁面中可以觸發的事件

全屏代碼
1、在AndroidManifest.xml的配置文件裡面的
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved