Android UI控制元件系列:WebView(網路檢視)

apkbus發表於2014-12-03

Android網路功能很強大,WebView元件支援直接載入網頁,可以將其視為一個瀏覽器,要實現該功能,具體步驟如下

1、在佈局檔案中宣告WebView
2、在Activity中例項化WebView
3、呼叫WebView的loadUrl()方法,載入指定的URL地址網頁
4、為了讓WebView能夠響應超連結功能,呼叫setWebViewClient()方法,設定WebView客戶端
5、為了讓WebView支援回退功能,覆蓋onKeyDown()方法
6、一定要注意:在AndroidManifest.xml檔案中新增訪問網際網路的許可權,否則不能顯示
<uses-permission android:name=”android.permission.INTERNET”/>

WebViewTest.java

/*
* @author hualang
*/
package org.hualang.webview;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebViewTest extends Activity {
    /** Called when the activity is first created. */
        private WebView webview;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        webview=(WebView)findViewById(R.id.webview);
        //設定WebView屬性,能夠執行JavaScript指令碼
        webview.getSettings().setJavaScriptEnabled(true);
        //載入URL內容
        webview.loadUrl("http://www.baidu.com");
        //設定web檢視客戶端
        webview.setWebViewClient(new MyWebViewClient());
    }
    //設定回退
    public boolean onKeyDown(int keyCode,KeyEvent event)
    {
            if((keyCode==KeyEvent.KEYCODE_BACK)&&webview.canGoBack())
            {
                    webview.goBack();
                    return true;
            }
            return super.onKeyDown(keyCode,event);
    }
    //web檢視客戶端
    public class MyWebViewClient extends WebViewClient
    {
            public boolean shouldOverviewUrlLoading(WebView view,String url)
            {
                    view.loadUrl(url);
                    return true;
            }
    }
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
/>
</LinearLayout>

執行結果如下:

相關文章