当前位置: 移动技术网 > IT编程>移动开发>Android > Android中WebView用法实例分析

Android中WebView用法实例分析

2019年07月24日  | 移动技术网IT编程  | 我要评论

霍州天气预报,你为我着迷快播,男孩捡到普通虫蛹 却敷出了这个

本文实例讲述了android中webview用法。分享给大家供大家参考,具体如下:

webview相当于一个迷你浏览器,采用webkit内核,因此完美支持html,javascript,css等。
在开发过程中应该注意几点:

1.androidmanifest.xml中必须使用许可"android.permission.internet",否则会出web page not available错误。
2.如果访问的页面中有javascript,则webview必须设置支持javascript。

复制代码 代码如下:
webview.getsettings().setjavascriptenabled(true);

3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开android的系统browser中响应该链接,必须覆盖 webview的webviewclient对象。

mwebview.setwebviewclient(new webviewclient(){
 public boolean shouldoverrideurlloading(webview view, string url) {
 view.loadurl(url);
 return true;
 }
});

4.如果不做任何处理,浏览网页,点击系统“back”键,整个browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前activity中处理并消费掉该back事件。

public boolean onkeydown(int keycode, keyevent event) {
 if ((keycode == keyevent.keycode_back) && mwebview.cangoback()) {
  mwebview.goback();
   return true;
 }
 return super.onkeydown(keycode, event);
}

实例:

<?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@drawable/bg_main" >
 <relativelayout
 android:id="@+id/title"
 android:layout_width="fill_parent"
 android:layout_height="48dp"
 android:layout_alignparenttop="true"
 android:background="@drawable/bg_title"
 android:padding="0dp" >
 <textview
  android:id="@+id/news"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_centerinparent="true"
  android:text="新浪微博"
  android:textsize="22sp"
  android:textcolor="#ffffff"/>
 </relativelayout>
 <webview
 android:id="@+id/web_view_pethome"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:layout_below="@+id/title"/>
 <progressbar
 android:id="@+id/progress_bar"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerinparent="true"
 android:visibility="gone" />
</relativelayout>

java文件代码:

private void findviews() {
 mwebview = (webview) findviewbyid(r.id.web_view_pethome);
 mprogressbar = (progressbar) findviewbyid(r.id.progress_bar);
}
private void setwebview() {
 // 调用loadurl()方法进行加载内容
 mwebview.loadurl(url);
 // 设置webview的属性,此时可以去执行javascript脚本
 mwebview.getsettings().setjavascriptenabled(true);
 // 设置缩放按钮
 mwebview.getsettings().setbuiltinzoomcontrols(true);
 mwebview.getsettings().setsupportzoom(true);
 mwebview.setwebviewclient(new webviewclient() {
 public boolean shouldoverrideurlloading(webview view, string url) {
  view.loadurl(url);
  return true;
 }
 @override
 public void onpagefinished(webview view, string url) {
  log.v("webview", "========onpagefinished=======");
  super.onpagefinished(view, url);
  mprogressbar.setvisibility(view.gone);
 }
 @override
 public void onpagestarted(webview view, string url, bitmap favicon) {
  log.v("webview", "========onpagestarted=======");
  super.onpagestarted(view, url, favicon);
  mprogressbar.setvisibility(view.visible);
 }
 });
}
/**
 * 返回键监听事件
 */
@override
public boolean onkeydown(int keycode, keyevent event) {
 if ((keycode == keyevent.keycode_back)) {
 if (mwebview.cangoback()) {
  mwebview.goback();
 }
 return true;
 }
 return super.onkeydown(keycode, event);
}

运行效果:

webview刷新当前页面:

复制代码 代码如下:
mwebview.reload();

希望本文所述对大家android程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网