Android中WebView用法实例分析
程序员文章站
2023-12-10 20:40:52
本文实例讲述了android中webview用法。分享给大家供大家参考,具体如下:
webview相当于一个迷你浏览器,采用webkit内核,因此完美支持html,jav...
本文实例讲述了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程序设计有所帮助。