第一种方法的步骤:
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的点点滴滴” 博客