ITEEDU

WebView丰富浏览器的设置

我们可以通过webview.getSettings()获得WebSettings对 象,对浏览器进行设置。如果我们需要支持JavaScript,我们需要如下设置:

browser.getSettings().setJavaScriptEnabled(true); 

有 几个比较常用的,setDefaultFontSize(), setTextSize(), setJavaScriptEnabled(), setJavaScriptCanOpenWindowsAutomatically(), setUserAgent()-“1”表示使用PC浏览器,0表示使用手机浏览器,可以通知website给出相应的排版方式。

下面是一个 例子,在这个例子中,我使用acivity的进度条来显示加载网页的进度条,当进度条满的时候,进度条会消失。

package com.iteedu.webview;

import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;


public class WebViewExample extends Activity {
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		final Activity activity = this; // 因为方法是以final的方式,所以设置final。
		// 设置activity的进度条,下面一句必须在setContentView之前,否则会报错。
		getWindow().requestFeature(Window.FEATURE_PROGRESS);

		setContentView(R.layout.main);
		WebView browser = (WebView) findViewById(R.id.WebView01);
		browser.getSettings().setJavaScriptEnabled(true);// 设置支持javascript的例子
		// 通过WebChromeClient可以处理JS对话框,titles, 进度,等
		// 这个例子,我们处理,我们将websit下载的进度同步到acitity的进度条上。
		browser.setWebChromeClient(new WebChromeClient() {
			public void onProgressChanged(WebView view, int newProgress) {
				// activity的进度是0 to 10000 (both inclusive),所以要*100
				activity.setProgress(newProgress * 100);
			}
		});
		browser.loadUrl("http://www.iteedu.com");
	}
}

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/WebView01" android:layout_width="wrap_content"
		android:layout_height="wrap_content" />

</LinearLayout>