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

来源:互联网 发布:微信js获取signature 编辑:程序博客网 时间:2024/05/17 03:23

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

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

程序运行效果图:



程序代码:


[java] view plaincopy
  1. package com.jph.simplebrowser;  
  2. import android.os.Bundle;  
  3. import android.app.Activity;  
  4. import android.app.AlertDialog;  
  5. import android.content.DialogInterface;  
  6. import android.content.DialogInterface.OnClickListener;  
  7. import android.view.KeyEvent;  
  8. import android.view.Menu;  
  9. import android.webkit.WebSettings;  
  10. import android.webkit.WebView;  
  11. import android.webkit.WebViewClient;  
  12. /** 
  13.  * Describe:</br> 
  14.  * 简单网页浏览器 
  15.  * 本实例可以打开指定网页,并且可以加载assets目录下的本地网页 
  16.  * @author JPH 
  17.  * Date:2014.08.03 
  18.  * */  
  19. public class SimpleBrowser extends Activity {  
  20.     WebView webView;  
  21.     //声明一个WebView辅助类  
  22.     WebSettings wSettings;  
  23.     @Override  
  24.     protected void onCreate(Bundle savedInstanceState) {  
  25.         super.onCreate(savedInstanceState);  
  26.         setContentView(R.layout.main);  
  27.         webView=(WebView)findViewById(R.id.webView);  
  28.         //获取WebSettings对象  
  29.         wSettings=webView.getSettings();  
  30.         //启用触控缩放  
  31.         wSettings.setBuiltInZoomControls(true);  
  32.         //启用支持视窗meta标记(可实现双击缩放)  
  33.         wSettings.setUseWideViewPort(true);  
  34.         //以缩略图模式加载页面  
  35.         wSettings.setLoadWithOverviewMode(true);  
  36.         //启用JavaScript支持  
  37.         wSettings.setJavaScriptEnabled(true);  
  38.         //设置将接收各种通知和请求的WebViewClient(在WebView加载所有的链接)  
  39.         webView.setWebViewClient(new WebViewClient());  
  40.         //设置默认加载的网页  
  41.         webView.loadUrl("http://www.baidu.com/");  
  42.         //加载本地assets目录下的的html,也可以是网络上的文件  
  43. //      webView.loadUrl("file:///android_asset/win8_Demo/index.html");  
  44.     }     
  45.     @Override  
  46.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  47.         // TODO Auto-generated method stub  
  48.         switch (keyCode) {  
  49.         case KeyEvent.KEYCODE_BACK://处理返回键事件  
  50.             if (webView.canGoBack()) {  
  51.                 webView.goBack();//让WebView回退到上一个网页  
  52.                 return true;  
  53.             }else {//如果WebView不能回退  
  54.                 //提示应用是否退出程序  
  55.                 new AlertDialog.Builder(SimpleBrowser.this).setTitle("提示")  
  56.                 .setMessage("确定退出浏览器吗?").setPositiveButton("确定"new OnClickListener() {                      
  57.                     @Override  
  58.                     public void onClick(DialogInterface dialog, int which) {  
  59.                         // TODO Auto-generated method stub  
  60.                         SimpleBrowser.this.finish();//退出程序  
  61.                     }  
  62.                 }).setNegativeButton("取消",null).show();  
  63.             }  
  64.             break;  
  65.         case KeyEvent.KEYCODE_SEARCH://当  
  66. //          webView.loadUrl("");  
  67.             break;  
  68.         default:  
  69.             break;  
  70.         }  
  71.         return false;  
  72.     }  
  73.   
  74.     @Override  
  75.     public boolean onCreateOptionsMenu(Menu menu) {  
  76.         // Inflate the menu; this adds items to the action bar if it is present.  
  77.         getMenuInflater().inflate(R.menu.simple_browser, menu);  
  78.         return true;  
  79.     }  
  80.   
  81. }  

布局文件:main.xml


[html] view plaincopy
  1. <WebView xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:id="@+id/webView"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent" >     
  6. </WebView>  
最后不要忘记给程序添加访问网络的权限:


[html] view plaincopy
  1. <!-- 添加使用网络的权限 -->  
  2.     <uses-permission android:name="android.permission.INTERNET"/>
0 0
原创粉丝点击