Android基础入门教程——7.5.4 WebView文件下载
Android基础入门教程——7.5.4 WebView文件下载
标签(空格分隔): Android基础入门教程
本节引言
本节给大家介绍的是WebView下载文件的知识点,当我们在使用普通浏览器的时候,比如UC,
当我们点击到一个可供下载链接的时候,就会进行下载,WebView作为一个浏览器般的组件,
当然也是支持下载,我们可以自己来写下载的流程,设置下载后的文件放哪,以什么文件名
保存,当然也可以调用其它内置的浏览器来进行下载,比如Chrome,UC等等!
下面给大家演示下用法!
1.调用其它浏览器下载文件:
这个很简单,我们只需为WebView设置setDownloadListener,然后重写DownloadListener的
onDownloadStart,然后在里面写个Intent,然后startActivity对应的Activity即可!
关键代码如下:
wView.setDownloadListener(new DownloadListener(){@Overridepublic void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {Log.e("HEHE","开始下载");Uri uri = Uri.parse(url);Intent intent = new Intent(Intent.ACTION_VIEW,uri);startActivity(intent);}});
如果你手机内存在多个浏览器的话,会打开一个对话框供你选择其中一个浏览器进行下载~
2.自己写线程下载文件
当然,你可能不想把下载文件放到默认路径下,或者想自己定义文件名等等,你都可以自己来写
一个线程来下载文件,实现示例代码如下:
核心代码:
我们自己另外写一个下载的线程类:
DownLoadThread.java
/*** Created by Jay on 2015/9/14 0014.*/
public class DownLoadThread implements Runnable {private String dlUrl;public DownLoadThread(String dlUrl) {this.dlUrl = dlUrl;}@Overridepublic void run() {Log.e("HEHE", "开始下载~~~~~");InputStream in = null;FileOutputStream fout = null;try {URL httpUrl = new URL(dlUrl);HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();conn.setDoInput(true);conn.setDoOutput(true);in = conn.getInputStream();File downloadFile, sdFile;if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {Log.e("HEHE","SD卡可写");downloadFile = Environment.getExternalStorageDirectory();sdFile = new File(downloadFile, "csdn_client.apk");fout = new FileOutputStream(sdFile);}else{Log.e("HEHE","SD卡不存在或者不可读写");}byte[] buffer = new byte[1024];int len;while ((len = in.read(buffer)) != -1) {fout.write(buffer, 0, len);}} catch (Exception e) {e.printStackTrace();} finally {if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}if (fout != null) {try {fout.close();} catch (IOException e) {e.printStackTrace();}}}Log.e("HEHE", "下载完毕~~~~");}
}
然后MainActivity.java中创建并启动该线程:
wView.setDownloadListener(new DownloadListener(){@Overridepublic void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {Log.e("HEHE","onDownloadStart被调用:下载链接:" + url);new Thread(new DownLoadThread(url)).start();}});
运行结果:
我们打开SD卡可以看到,下载好的文件已经安安静静地躺在SD卡里了:
注意事项:
好的,另外,别忘了写SD卡的读写权限以及Internet访问网络的权限:
<uses-permission android:name="android.permission.INTERNET"/><!-- 在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 往SDCard写入数据权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
还有,in = conn.getInputStream();要写在conn设置完所有东西的后面!!切记,不然什么都读不了!
本节小结:
本节非常简单,代码就不贴出了,其实就是setDownloadListener这个玩意,自己重写下
onDownloadStart方法来处理下载过程而已~,本节就到这里,谢谢~
Android基础入门教程——7.5.4 WebView文件下载相关推荐
- android设置webview缓存目录,Android基础入门教程——7.5.5 WebView缓存问题
Android基础入门教程--7.5.5 WebView缓存问题 Android基础入门教程 本节引言:现在很多门户类信息网站,比如虎嗅,ifanr,钛媒体等等的APP,简单点说是信息阅读类的APP, ...
- 最新Android基础入门教程目录(完结版)
第一章:环境搭建与开发相关(已完结 10/10) https://blog.csdn.net/coder_pig/article/details/50000773 Android基础入门教程--1.1 ...
- 2015年最新Android基础入门教程目录(完结版)
2015年最新Android基础入门教程目录(完结版) 标签(空格分隔): Android基础入门教程 前言: 关于<2015年最新Android基础入门教程目录>终于在今天落下了帷幕,全 ...
- Android基础入门教程——7.4 Android调用WebService
Android基础入门教程--7.4 Android调用WebService 标签(空格分隔): Android基础入门教程 本节引言: 经过前面的学习,数据请求,数据解析,文件上传下载等,应该满足大 ...
- android 编辑9图片,Android基础入门教程——1.6 .9(九妹)图片怎么玩
Android基础入门教程--1.6 .9(九妹)图片怎么玩 Android基础入门教程 1.本节引言: 可能有的一些疑问: 1.什么是.9图片? 答:图片后缀名前有.9的图片,如pic1.9.png ...
- Android基础入门教程——4.3.1 BroadcastReceiver牛刀小试
Android基础入门教程--4.3.1 BroadcastReceiver牛刀小试 标签(空格分隔): Android基础入门教程 本节引言 本节我们将来学习Android四大组件中的第三个:Bro ...
- Android基础入门教程——10.1 TelephonyManager(电话管理器)
Android基础入门教程--10.1 TelephonyManager(电话管理器) 标签(空格分隔): Android基础入门教程 本节引言: 本章节是Android基础入门教程的最后一章,主要讲 ...
- Android基础入门教程——7.6.1 Socket学习网络基础准备
Android基础入门教程--7.6.1 Socket学习网络基础准备 标签(空格分隔): Android基础入门教程 本节引言: 为了照顾没学过Java Socket的初学者,或者说捋一捋Andro ...
- Android基础入门教程——1.7 界面原型设计
Android基础入门教程--1.7 界面原型设计 标签(空格分隔): Android基础入门教程 本节引言: 引用锤子科技视觉设计总监--罗子雄在重庆TEDx活动上说的一小段话: 每当我们看到一些美 ...
- Android基础入门教程——2.5.1 Toast(吐司)的基本使用
Android基础入门教程--2.5.1 Toast(吐司)的基本使用 标签(空格分隔): Android基础入门教程 本节引言: 好的,终于学习完Adapter类相关的一些控件,当然除了讲解的那几个 ...
最新文章
- 库存事务处理现有量检查
- DataSet RecordSet 互转
- Unity热更新方案探索与讨论
- 洛谷1231 教辅的组成
- 摩根斯坦利面试题库_经验 | 金融公司摩根士丹利从笔试到实习的全程经验
- 笔记本电脑与漂亮老婆
- 2的负x次幂图像_数学| NO.2,3 函数 T15
- 485光隔离中继器产品特点及应用领域介绍
- os是android5.0,Funtouch OS 2.1曝光 完美改Android5.0
- 设计模式常见面试题汇总
- Nginx使用HTTPS建立与上游服务器的网络通信
- 关于int类型除以1000后保留两位小数的问题,并且在excel里打印出来
- 几种常见单例的写法和问题
- spoj4487(splay)
- 装WIN7u盘启动盘制作详细图文教程
- POJ 1179 Polygon
- python中类名(..)(..)的情况及_call_函数解析
- 拾贰SparkSQL:数据关联优化
- 自学编程的人,90%以上都会掉进这些坑,避开这些误区能提高N倍学习效率
- 河南科技学院教务管理系统服务器,河南科技学院教务管理系统:http://jwc.hist.edu.cn...