android webview最新版下载,Android WebView 支持文件下载的几种方式

本文介绍了在Android中让WebView支持文件下载的三种方法:跳转浏览器下载、使用系统下载服务和自定义下载任务。详细讲解了每种方法的实现步骤,并提供了相应的代码示例。重点介绍了使用DownloadManager系统服务的下载流程,包括监听下载完成并启动安装界面的实现。
摘要由CSDN通过智能技术生成

最近在开发的过程中遇到一个需求,那就是让 WebView 支持文件下载,比如说下载 apk。WebView 默认是不支持下载的,需要开发者自己实现。既然 PM 提出了需求,那咱就撸起袖子干呗,于是乎在网上寻找了几种方法,主要思路有这么几种:

跳转浏览器下载

使用系统的下载服务

自定义下载任务

有了思路就好办了,下面介绍具体实现。

要想让 WebView 支持下载,需要给 WebView 设置下载监听器 setDownloadListener,DownloadListener 里面只有一个方法 onDownloadStart,每当有文件需要下载时,该方法就会被回调,下载的 URL 通过方法参数传递,我们可以在这里处理下载事件。

mWebView.setDownloadListener(new DownloadListener() {

@Override

public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength) {

// TODO: 2017-5-6 处理下载事件

}

});

1. 跳转浏览器下载

这种方式最为简单粗暴,直接把下载任务抛给浏览器,剩下的就不用我们管了。缺点是无法感知下载完成,当然就没有后续的处理,比如下载 apk 完成后打开安装界面。

private void downloadByBrowser(String url) {

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.addCategory(Intent.CATEGORY_BROWSABLE);

intent.setData(Uri.parse(url));

startActivity(intent);

}

2. 使用系统的下载服务

DownloadManager 是系统提供的用于处理下载的服务,使用者只需提供下载 URI 和存储路径,并进行简单的设置。DownloadManager 会在后台进行下载,并且在下载失败、网络切换以及系统重启后尝试重新下载。

private void downloadBySystem(String url, String contentDisposition, String mimeType) {

// 指定下载地址

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));

// 允许媒体扫描,根据下载的文件类型被加入相册、音乐等媒体库

request.allowScanningB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值