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