首页 > 代码库 > Android开发之网页浏览器(WebView的使用)

Android开发之网页浏览器(WebView的使用)

       本实例主要介绍WebView的使用,WebView的详解可参考Android开发之WebView详解

    本实例主要实现了:浏览器可以打开指定网页,可以加载assets目录下的本地网页,并且可以通过回退键查看上一个网页。

程序运行效果图:



程序代码:


package com.jph.simplebrowser;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
/**
 * Describe:</br>
 * 简单网页浏览器
 * 本实例可以打开指定网页,并且可以加载assets目录下的本地网页
 * @author JPH
 * Date:2014.08.03
 * */
public class SimpleBrowser extends Activity {
	WebView webView;
	//声明一个WebView辅助类
	WebSettings wSettings;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		webView=(WebView)findViewById(R.id.webView);
		//获取WebSettings对象
		wSettings=webView.getSettings();
		//启用触控缩放
		wSettings.setBuiltInZoomControls(true);
		//启用支持视窗meta标记(可实现双击缩放)
		wSettings.setUseWideViewPort(true);
		//以缩略图模式加载页面
		wSettings.setLoadWithOverviewMode(true);
		//启用JavaScript支持
		wSettings.setJavaScriptEnabled(true);
		//设置将接收各种通知和请求的WebViewClient(在WebView加载所有的链接)
		webView.setWebViewClient(new WebViewClient());
		//设置默认加载的网页
		webView.loadUrl("http://www.baidu.com/");
		//加载本地assets目录下的的html,也可以是网络上的文件
//		webView.loadUrl("file:///android_asset/win8_Demo/index.html");
	}	
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub
		switch (keyCode) {
		case KeyEvent.KEYCODE_BACK://处理返回键事件
			if (webView.canGoBack()) {
				webView.goBack();//让WebView回退到上一个网页
				return true;
			}else {//如果WebView不能回退
				//提示应用是否退出程序
				new AlertDialog.Builder(SimpleBrowser.this).setTitle("提示")
				.setMessage("确定退出浏览器吗?").setPositiveButton("确定", new OnClickListener() {					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
						SimpleBrowser.this.finish();//退出程序
					}
				}).setNegativeButton("取消",null).show();
			}
			break;
		case KeyEvent.KEYCODE_SEARCH://当
//			webView.loadUrl("");
			break;
		default:
			break;
		}
		return false;
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.simple_browser, menu);
		return true;
	}

}

布局文件:main.xml


<WebView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >   
</WebView>
最后不要忘记给程序添加访问网络的权限:


<!-- 添加使用网络的权限 -->
	<uses-permission android:name="android.permission.INTERNET"/>