Android开发(关于WebView)

智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述Android开发:关于WebView相关的知识,希望能为你提供帮助。
 
  原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处  、作者信息和本声明。否则将追究法律责任。http://liangruijun.blog.51cto.com/3061169/647456      WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:
第一种方法的步骤:
1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:   互联网用:webView.loadUrl("http://www.google.com");     本地文件用:webView.loadUrl("file:///android_asset/XX.html");   本地文件存放在:assets  文件中
3.调用Activity的setContentView(  )方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。     < uses-permission  android:name="android.permission.INTERNET"  />
下面是具体例子:
MainActivity.java

  1. package  com.android.webview.activity;  
  2.  
  3. import  android.app.Activity;  
  4. import  android.os.Bundle;  
  5. import  android.view.KeyEvent;  
  6. import  android.webkit.WebView;  
  7.  
  8. public  class  MainActivity  extends  Activity  {  
  9.         private  WebView  webview;  
  10.         @Override 
  11.         public  void  onCreate(Bundle  savedInstanceState)  {  
  12.                 super.onCreate(savedInstanceState);  
  13.                 //实例化WebView对象  
  14.                 webview  =  new  WebView(this);  
  15.                 //设置WebView属性,能够执行javascript脚本  
  16.                 webview.getSettings().setJavaScriptEnabled(true);  
  17.                 //加载需要显示的网页  
  18.                 webview.loadUrl("http://www.51cto.com/");  
  19.                 //设置Web视图  
  20.                 setContentView(webview);  
  21.         }  
  22.          
  23.         @Override 
  24.         //设置回退  
  25.         //覆盖Activity类的onKeyDown(int  keyCoder,KeyEvent  event)方法  
  26.         public  boolean  onKeyDown(int  keyCode,  KeyEvent  event)  {  
  27.                 if  ((keyCode  ==  KeyEvent.KEYCODE_BACK)  & &   webview.canGoBack())  {  
  28.                         webview.goBack();   //goBack()表示返回WebView的上一页面  
  29.                         return  true;  
  30.                 }  
  31.                 return  false;  
 
在AndroidManifest.xml文件中的17行添加权限
  1. < ?xml version="1.0" encoding="utf-8"?>
  2. < manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.android.webview.activity"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. < uses-sdk android:minSdkVersion="10" />
  7. < application android:icon="@drawable/icon" android:label="@string/app_name">
  8. < activity android:name=".MainActivity"
  9. android:label="@string/app_name">
  10. < intent-filter>
  11. < action android:name="android.intent.action.MAIN" />
  12. < category android:name="android.intent.category.LAUNCHER" />
  13. < /intent-filter>
  14. < /activity>
  15. < /application>
  16. < uses-permission android:name="android.permission.INTERNET"/>
  17. < /manifest>
 
效果图:
 
第二种方法的步骤:
1、在布局文件中声明WebView
2、在Activity中实例化WebView
3、调用WebView的loadUrl( )方法,设置WevView要显示的网页
4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置  WebView视图
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
6、需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。
< uses-permission android:name="android.permission.INTERNET"/>
  下面是具体的例子:
MainActivity.java
  1. package  com.android.webview.activity;  
  2.  
  3. import  android.app.Activity;  
  4. import  android.os.Bundle;  
  5. import  android.view.KeyEvent;  
  6. import  android.webkit.WebView;  
  7. import  android.webkit.WebViewClient;  
  8.  
  9. public  class  MainActivity  extends  Activity  {  
  10.         private  WebView  webview;  
  11.         @Override 
  12.         public  void  onCreate(Bundle  savedInstanceState)  {  
  13.                 super.onCreate(savedInstanceState);  
  14.                 setContentView(R.layout.main);  
  15.                 webview  =  (WebView)  findViewById(R.id.webview);  
  16.                 //设置WebView属性,能够执行Javascript脚本  
  17.                 webview.getSettings().setJavaScriptEnabled(true);  
  18.                 //加载需要显示的网页  
  19.                 webview.loadUrl("http://www.51cto.com/");  
  20.                 //设置Web视图  
  21.                 webview.setWebViewClient(new  HelloWebViewClient  ());  
  22.         }  
  23.          
  24.         @Override 
  25.         //设置回退  
  26.         //覆盖Activity类的onKeyDown(int  keyCoder,KeyEvent  event)方法  
  27.         public  boolean  onKeyDown(int  keyCode,  KeyEvent  event)  {  
  28.                 if  ((keyCode  ==  KeyEvent.KEYCODE_BACK)  & &   webview.canGoBack())  {  
  29.                         webview.goBack();   //goBack()表示返回WebView的上一页面  
  30.                         return  true;  
  31.                 }  
  32.                 return  false;  
  33.         }  
  34.          
  35.         //Web视图  
  36.         private  class  HelloWebViewClient  extends  WebViewClient  {  
  37.                 @Override 
  38.                 public  boolean  shouldOverrideUrlLoading(WebView  view,  String  url)  {  
  39.                         view.loadUrl(url);  
  40.                         return  true;  
  41.                 }  
  42.         }  
main.xml
  1. < ?xml  version="1.0"  encoding="utf-8"?>  
  2. < LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android" 
  3.         android:orientation="vertical" 
  4.         android:layout_width="fill_parent" 
  5.         android:layout_height="fill_parent" 
  6.         >      
  7.         < WebView   
  8.                 android:id="@+id/webview" 
  9.                 android:layout_width="fill_parent" 
  10.                 android:layout_height="fill_parent" 
  11.                 />  
  12. < /LinearLayout>  
在AndroidManifest.xml文件中的17行添加权限
  1. < ?xml  version="1.0"  encoding="utf-8"?>  
  2. < manifest  xmlns:android="http://schemas.android.com/apk/res/android" 
  3.             package="com.android.webview.activity" 
  4.             android:versionCode="1" 
  5.             android:versionName="1.0">  
  6.         < uses-sdk  android:minSdkVersion="10"  />  
  7.  
  8.         < application  android:icon="@drawable/icon"  android:label="@string/app_name">  
  9.                 < activity  android:name=".MainActivity" 
  10.                                     android:label="@string/app_name">  
  11.                         < intent-filter>  
  12.                                 < action  android:name="android.intent.action.MAIN"  />  
  13.                                 < category  android:name="android.intent.category.LAUNCHER"  />  
  14.                         < /intent-filter>  
  15.                 < /activity>  
  16.         < /application>  
  17.         < uses-permission  android:name="android.permission.INTERNET"/>  
  18. < /manifest>  
效果图:
 
【Android开发(关于WebView)】本文出自 “IT的点点滴滴” 博客,请务必保留此出处http://liangruijun.blog.51cto.com/3061169/647456

    推荐阅读