Android中的WebView進行直接載入網頁

來源:互聯網
上載者:User

 

我們都知道Android的網路功能很不錯,當然Android中WebView組件也挺不錯,可以直接進行載入網頁,我們可以把這個看做一個小型的瀏覽器\

 

      【注】以下的一些內容我翻譯了一下文檔,可能有些翻譯不太準確,就算自己當做一次學習英文的機會了,請大家稍微見諒一下哈

    首先我們看下文檔中對於WebView的解釋:

                  WebView是進行web網頁顯示的,我們使用這個類為基礎進行開發推出自己的Web瀏覽器,或者我們可以直接在當前的Activity中顯示線上的內容。

                  WebView使用WebKit進行渲染來顯示網頁,通過於此,我們可以進行實現網頁後退,前進,放大,縮小或者搜尋或者更多功能;

 

  【注意】使用WebView,,因為用處到了網路,所以我們必須在AndroidManifset.xml檔案中進行使用權限設定

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

 

          接下來去實現WebView,需要下面一些步驟

    一:要在布局檔案那邊聲明WebView組件

   二:在Activity中進行執行個體化

   三:調用WebView的loadUrl()方法來實現。載入指定的URL地址的網頁

   Demo原始碼:

    

 

package com.android_jiangqq.iweibo.ui; 

 

/**

 * @author jiangqq

 * 

 */ 

import com.android_jiangqq.iweibo.R; 

import android.app.Activity; 

import android.os.Bundle; 

import android.view.Window; 

import android.view.WindowManager; 

import android.webkit.WebView; 

 

public class WebView_Test extends Activity { 

    private WebView webView; 

    private static final String URL = "http://www.google.com"; 

 

    @Override 

    protected void onCreate(Bundle savedInstanceState) { 

        // TODO Auto-generated method stub 

        super.onCreate(savedInstanceState); 

        // 取消標題 

        this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

        // 進行全屏 

 

        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 

                WindowManager.LayoutParams.FLAG_FULLSCREEN); 

        setContentView(R.layout.webview); 

        // 執行個體化WebView 

        webView = (WebView) this.findViewById(R.id.wv_oauth); 

        /**

         * 調用loadUrl()方法進行載入內容

         */ 

        webView.loadUrl(URL); 

        /**

         * 設定WebView的屬性,此時可以去執行JavaScript指令碼

         */ 

        webView.getSettings().setJavaScriptEnabled(true); 

    } 

 XML檔案的定義:

 

 

<?xml version="1.0" encoding="utf-8"?> 

;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

 android:layout_width="fill_parent" 

 android:layout_height="fill_parent" 

 android:orientation="vertical" > 

 

 <WebView 

     android:id="@+id/wv_oauth" 

     android:layout_width="fill_parent" 

     android:layout_height="fill_parent" /> 

 

;/LinearLayout> 

效果:

   

 

 

 ①:有時候我們我們需要WebView能夠實現超連結的功能。我們可以調用setWebViewClient()方法試著WebView的用戶端,

      此時我們只要重寫一下WebViewClient類下的public boolean shouldOverrideKeyEvent (WebView view, KeyEvent event)就可以了

       原始碼如下:

 

private class myWebViewClient extends WebViewClient { 

    @Override 

public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) { 

webView.loadUrl(URL); 

return true; 

 } 

 

 

 

②:考慮到網頁的載入速度,我們可以調用setWebChromeClient()方法

      我們此時只要重寫一下WebChromeClient類中的

public void onProgressChanged (WebView view, int newProgress)來顯示頁面的載入進度,執行個體代碼如下:

 

 

webview.setWebChromeClient(new WebChromeClient() { 

 

        @Override 

        public void onProgressChanged(WebView view, int newProgress) { 

 

            if (newProgress == 100) { 

                handler.sendEmptyMessage(CLOSE_DIA); 

            } 

            super.onProgressChanged(view, newProgress); 

        } 

 

    }); 

    代碼中我用到了handlr,  此時如果載入進度=100的時候,發個訊息給handler  然後進行處理

 

摘自 jiangqq781931404

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.