欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发学习笔记 浅谈WebView

程序员文章站 2022-04-12 12:33:38
第一种方法的步骤: 1.在要activity中实例化webview组件:webview webview = new webview(this); 2.调用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

package com.android.webview.activity; 
 
import android.app.activity; 
import android.os.bundle; 
import android.view.keyevent; 
import android.webkit.webview; 
 
public class mainactivity extends activity { 
 private webview webview; 
 @override 
 public void oncreate(bundle savedinstancestate) { 
  super.oncreate(savedinstancestate); 
  //实例化webview对象 
  webview = new webview(this); 
  //设置webview属性,能够执行javascript脚本 
  webview.getsettings().setjavascriptenabled(true); 
  //加载需要显示的网页 
  webview.loadurl("//www.jb51.net/"); 
  //设置web视图 
  setcontentview(webview); 
 } 
  
 @override 
 //设置回退 
 //覆盖activity类的onkeydown(int keycoder,keyevent event)方法 
 public boolean onkeydown(int keycode, keyevent event) { 
  if ((keycode == keyevent.keycode_back) && webview.cangoback()) { 
   webview.goback(); //goback()表示返回webview的上一页面 
   return true; 
  } 
  return false; 
} 

在androidmanifest.xml文件中的17行添加权限

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  package="com.android.webview.activity" 
  android:versioncode="1" 
  android:versionname="1.0"> 
 <uses-sdk android:minsdkversion="10" /> 
 
 <application android:icon="@drawable/icon" android:label="@string/app_name"> 
  <activity android:name=".mainactivity" 
     android:label="@string/app_name"> 
   <intent-filter> 
    <action android:name="android.intent.action.main" /> 
    <category android:name="android.intent.category.launcher" /> 
   </intent-filter> 
  </activity> 
 </application> 
 <uses-permission android:name="android.permission.internet"/> 
</manifest>

效果图:

Android开发学习笔记 浅谈WebView

第二种方法的步骤:

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

package com.android.webview.activity; 
 
import android.app.activity; 
import android.os.bundle; 
import android.view.keyevent; 
import android.webkit.webview; 
import android.webkit.webviewclient; 
 
public class mainactivity extends activity { 
 private webview webview; 
 @override 
 public void oncreate(bundle savedinstancestate) { 
  super.oncreate(savedinstancestate); 
  setcontentview(r.layout.main); 
  webview = (webview) findviewbyid(r.id.webview); 
  //设置webview属性,能够执行javascript脚本 
  webview.getsettings().setjavascriptenabled(true); 
  //加载需要显示的网页 
  webview.loadurl("//www.jb51.net/"); 
  //设置web视图 
  webview.setwebviewclient(new hellowebviewclient ()); 
 } 
  
 @override 
 //设置回退 
 //覆盖activity类的onkeydown(int keycoder,keyevent event)方法 
 public boolean onkeydown(int keycode, keyevent event) { 
  if ((keycode == keyevent.keycode_back) && webview.cangoback()) { 
   webview.goback(); //goback()表示返回webview的上一页面 
   return true; 
  } 
  return false; 
 } 
  
 //web视图 
 private class hellowebviewclient extends webviewclient { 
  @override 
  public boolean shouldoverrideurlloading(webview view, string url) { 
   view.loadurl(url); 
   return true; 
  } 
 } 
} 

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:orientation="vertical" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 > 
 <webview 
  android:id="@+id/webview" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  /> 
</linearlayout> 

在androidmanifest.xml文件中的17行添加权限

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  package="com.android.webview.activity" 
  android:versioncode="1" 
  android:versionname="1.0"> 
 <uses-sdk android:minsdkversion="10" /> 
 
 <application android:icon="@drawable/icon" android:label="@string/app_name"> 
  <activity android:name=".mainactivity" 
     android:label="@string/app_name"> 
   <intent-filter> 
    <action android:name="android.intent.action.main" /> 
    <category android:name="android.intent.category.launcher" /> 
   </intent-filter> 
  </activity> 
 </application> 
 <uses-permission android:name="android.permission.internet"/> 
</manifest> 

效果图:

Android开发学习笔记 浅谈WebView

本文出自 “it的点点滴滴” 博客