2010年1月11日星期一

一個簡單的瀏覽器, 網絡視圖(WebView).

網絡視圖(WebView)是一個顯示網頁的視圖(View). 通過使用網絡視圖(WebView), 您可以把網絡瀏覽器顯示在您的活動(Activity)上.

Android Browser using WebView

注意,為了使您的活動(Activity)接入互聯網並從網絡視圖(WebView)加載網頁, 您必須在清單文件(AndroidManifest.xml)裡, 的子項中添加"android.permission.INTERNET"這個權限.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.AndroidWebView"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AndroidWebView"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
<uses-sdk android:minSdkVersion="5" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>


修改main.xml, 添加一個WebView.
<?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/mybrowser"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>


修改源碼
package com.AndroidWebView;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class AndroidWebView extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

String myURL = "http://www.google.com/m/";
WebView myBrowser=(WebView)findViewById(R.id.mybrowser);

WebSettings websettings = myBrowser.getSettings();
websettings.setSupportZoom(true);
websettings.setBuiltInZoomControls(true);
websettings.setJavaScriptEnabled(true);

myBrowser.setWebViewClient(new WebViewClient());

myBrowser.loadUrl(myURL);

}
}


默認的設置是限制JavaScript, 所以需要使用此代碼啟用JavaScript:
websettings.setJavaScriptEnabled(true);

下面兩句代碼非常明顯, 啟用內置的縮放功能. 當網頁滾動時, 內置的縮放功能(+/-符號)便會出現.
websettings.setSupportZoom(true);
websettings.setBuiltInZoomControls(true);

在默認設定之下, 如果你點擊一個鏈接, 它會調用Android自帶的瀏覽器打開鏈接. 如果你想繼續使用你自己的瀏覽器, 可以使用下面的代碼.
myBrowser.setWebViewClient(new WebViewClient());




下一篇: "為網絡視圖(WebView)補充一點導航的功能"



沒有留言:

發佈留言