第一种方法的步骤:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
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.zzvips.com/" );
//设置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行添加权限
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?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>
|
效果图:
第二种方法的步骤:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
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.zzvips.com/" );
//设置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
1
2
3
4
5
6
7
8
9
10
11
12
|
<?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行添加权限
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?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>
|
效果图:
本文出自 “it的点点滴滴” 博客