Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 465|回复: 0

开发交流:[Android API 学习]WebView基本使用

[复制链接]

该用户从未签到

发表于 2011-10-24 10:11:32 | 显示全部楼层 |阅读模式
WebView是android.webkit包下的一个组件,能用来显示网页。


WebView默认是不带地址栏和加载进度条的,单单是一个显示页面内容的面板。


使用WebView非常简单,主要是通过load方法进行加载。


[使用WebView打开一个网页]
1.在布局xml文件中定义WebView组件
< WebView   android:id = "@+id/webview"
      android:layout_width = "match_parent"
      android:layout_height = "match_parent"
/>

2.在AndroidManifest.xml中添加网络访问权限
<uses-permission android:name="android.permission.INTERNET" />


3.通过load函数加载网页
mWebview  = (WebView) this .findViewById(R.id. webview );
// 简单地加载一个页面
mWebview .loadUrl(url);

// 加载assets目录下的页面(assets\index.HTML)
mWebview .loadData( "file:///android_asset/index.html" );


但你会发现,如果点击页面的某条链接进行跳转的话,会启动系统的默认浏览器进行加载,调出了我们本身的应用。要解决这个问题我们需要借助于WebViewClient。

[自定义链接的跳转显示]
mWebview .setWebChromeClient( new WebViewClient() {

        /**
        * 自定义网页加载
        */
         public   boolean   shouldOverrideUrlLoading(WebView view, String url){
             // 使用当前的WebView加载页面
            view.loadUrl(url);
             return   true ;
       }

});

在WebViewClient中还有很多的方法,例如:
/**
* 网页开始加载
*/
public   void   onPageStarted(WebView view, String url, Bitmap favicon);


/**
* 网页加载完毕(仅指主页,不包括图片)
*/
public   void   onPageFinished(WebView view, String url);


/**
* 加载页面资源
*/
public   void   onLoadResource(WebView view, String url)


/**
* 错误提示
*/
public   void   onReceivedError(WebView view,   int   errorCode, String description, String failingUrl)


我们都可以通过重写来实现自己的个性化操作。

[页面回退]
实现了跳转后,你忽然想返回到前一个浏览过的页面是,发现返回键是直接退出应用了。要实现类似系统浏览器那样的,返回键先是返回到上一个页面,直到最初始的页面才退出的话,可以这么做:
// 重写onKeyDown
public   boolean   onKeyDown ( int   keyCode, KeyEvent event) {
      if   ((keyCode == KeyEvent. KEYCODE_BACK ) &&   mWebview .canGoBack()) {
           mWebview .goBack();
          return   true ;
     }

      return   super .onKeyDown(keyCode, event);
}

[进度条]
要是再加上加载进度条那就完美了,我们可以借助WebChromeClient来实现:
mWebview .setWebChromeClient( new WebChromeClient()   {
       /**
       * 进度条发生变化
       */      
       public   void   onProgressChanged (WebView view,   int   newProgress){
             loadingProgress .setProgress(newProgress);
      }
});

>>更多的WebView的使用说明请参考API文档。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 02:54 , Processed in 0.354830 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表