前言
WebVIEw(网络视图)在AndorID中就是用来显示网页的,下面我们来一起看看它是如何使用的。
一、基本使用
1.声明权限,WebVIEw不可避免地要用到网络,我们要加上网络访问权限。
<uses-permission androID:name="androID.permission.INTERNET"/>
2.放入Layout
<WebVIEw androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:ID="@+ID/web">
3.在Activity中引用
private WebVIEw webVIEw;webVIEw = (WebVIEw) findVIEwByID(R.ID.web);webVIEw.loadUrl("http://piaoshu.org");//webVIEw.loadUrl("file:///androID_asset/xx.HTML");也可以加载本地的HTML
这时你会发现,应用会自动跳出系统或第三方浏览器,也就是说你无法在自己的应用中显示自己的网页。怎么办呢?接下来介绍WebVIEw两个重要的监听事件。
二、WebVIEwClIEnt与WebChromeClIEnt
webVIEw.setWebVIEwClIEnt()
主要用于加载网页过程的监听。
webVIEw.setWebVIEwClIEnt(new WebVIEwClIEnt(){ @OverrIDe //只要重写此方法,就能在本应用中加载网页 public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw,String url) { vIEw.loadUrl(url); return true;//返回值时true的时候控制网页在WebVIEw中去打开,如果为false调用系统浏览器或第三方浏览器 } @OverrIDe public voID onReceivedError(WebVIEw vIEw,int errorCode,String description,String failingUrl) { //收到错误信息的时候,系统执行此 *** 作.//比如当出现404错误码时,我们可以自己写个HTML放在asset文件夹中,把webVIEw隐藏掉而显示本地的网页。 } @OverrIDe public voID onPageStarted(WebVIEw vIEw,String url,Bitmap favicon) { super.onPagStarted(vIEw,url,favicon); //若想在网页开始加载时执行一些 *** 作,重写该方法 } @OverrIDe public voID onPageFinished(WebVIEw vIEw,String url) { super.onPageFinished(vIEw,url); //若想在网页结束时执行一些 *** 作,重写该方法 } });
webVIEw.setWebChromeClIEnt()
主要用于加载网页过程对UI的 *** 作。
webVIEw.setWebChromeClIEnt(new WebChromeClIEnt(){ @OverrIDe public voID onProgressChanged(WebVIEw vIEw,int newProgress) { progressbar.setProgress(newProgress);//newProgress的值为1到100的整数,我们可以利用这个参数使用Progressbar或ProgressDialog显示加载进度 } } @OverrIDe public voID onReceivedTitle(WebVIEw vIEw,String Title) { textVIEw.setText(Title);//参数Title为网页的标题,可以用一个textVIEw来显示。 }});
好了,我们来看看网页加载的情况。
看起来网页加载得很好,其实我已经设置了一些相关属性。我们来看看WebVIEw 有哪些属性
三、WebSettings
WebSettings settings=webVIEw.getSettings();
//支持JavaScript脚本settings.setJavaScriptEnabled(true);
//设置WebVIEw支持广泛的视窗 settings.setUseWIDeVIEwPort(true);
//支持手势缩放 settings.setBuiltInZoomControls(true);
//设置WebVIEw 支持加载更多格式页面 settings.setLoaDWithOverviewmode(true);
//WebVIEw加载页面优先使用缓存加载 settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
还有一些属性我就不讲出来了,有兴趣的自己搜一下。
四、下载文件
webvIEw中有时含有下载文件的链接,点击链接后文件会被下载到本地中。如何实现呢?系统为我们提供了一个下载接口DownloadListener,代码简单而方便。
我们只要写一个类实现此接口并重写方法,通过Intent调用系统的浏览器
class MyListenter implements DownloadListener{ @OverrIDe public voID onDownloadStart(String url,String userAgent,String contentdisposition,String mimetype,long contentLength) { Uri uri = Uri.parse(url); //url即下载链接 Intent intent = new Intent(Intent.ACTION_VIEW,uri); startActivity(intent); }}
别忘了设置监听器
webVIEw.setDownloadListener(new MyListenter());
我们借助了第三方浏览器进行下载,这是最简单的做法
点击AndroID下载,效果如下
或者我们可以写一个线程进行下载,在onDownloadStart()
方法中启动线程就可以了,具体代码就不贴上来了。
总结一下用法。
使用前记得申明权限,控件的引用就不用说了。
重点在于WebVIEwClIEnt与WebChromeClIEnt两个类。
webVIEw.setWebVIEwClIEnt()
主要用于加载网页过程的相关 *** 作。
webVIEw.setWebChromeClIEnt()
则用于加载网页过程对UI的 *** 作。
系统还我们提供了一个下载接口DownloadListener。
以上就是这篇文章的全部内容,希望对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。
总结以上是内存溢出为你收集整理的Android开发中WebView的简单使用小结全部内容,希望文章能够帮你解决Android开发中WebView的简单使用小结所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)