本实例主要介绍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"/>