Android开发学习笔记 浅谈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>
效果图:
第二种方法的步骤:
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>
效果图:
本文出自 “it的点点滴滴” 博客
推荐阅读
-
Android开发笔记之:如何屏蔽Button setClickable与setEnabled
-
Android开发笔记之:复写按钮方法
-
Android开发笔记之:如何安全中止一个自定义线程Thread的方法
-
Android开发笔记之:Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
-
Android开发笔记之:在ImageView上绘制圆环的实现方法
-
Android开发笔记之:返回键的复写onBackPressed()介绍
-
Android开发学习实现简单计算器
-
HTML5移动开发学习笔记之Canvas基础
-
Layabox 3D游戏开发学习笔记---射线检测,鼠标控制物体运动
-
Android开发——Kotlin开发APP使用笔记