Android开发学习笔记 浅谈WebView

时间:2021-05-02

第一种方法的步骤:

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的点点滴滴” 博客

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章