android webview 设置下载文件,Android WebView使用之文件下载

本文介绍了如何在Android的WebView中实现文件下载功能。通过设置DownloadListener,并创建自定义的下载监听器,实现在SD卡中保存下载文件,并展示进度对话框。此外,还提供了处理下载错误、检查SD卡状态以及调用系统查看下载文件的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这一篇介绍下WebView的下载,当我们在使用普通浏览器的时候,比如UC, 当我们点击到一个可供下载链接的时候,就会进行下载,WebView作为一个浏览器般的组件, 当然也是支持下载,我们可以自己来写下载的流程,设置下载后的文件放哪,以什么文件名 保存,当然也可以调用其它内置的浏览器来进行下载,比如Chrome,UC等等!

使用其它浏览器下载

WebView默认没有开启文件下载的功能,如果要实现文件下载的功能,需要设置WebView的DownloadListener,通过实现自己的DownloadListener来实现文件的下载。具体操作如下:

1、设置WebView的DownloadListener:

webView.setDownloadListener(new MyWebViewDownLoadListener());

2、实现MyWebViewDownLoadListener这个类:

private class MyWebViewDownLoadListener implements DownloadListener{

@Override

public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,

long contentLength) {

Log.d(TAG,"开始下载");

Uri uri = Uri.parse(url);

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

startActivity(intent);

}

}

这只是调用系统中已经内置的浏览器进行下载,还没有WebView本身进行的文件下载

项目中使用

大概思路就是,先用WebView加载一个网页,网页上有下载时,进行下载,把下载的内容存到SD卡中,然后打开或者进行其它操作

首先要设置我们的WebView

WebView webview=(WebView)layout.findViewById(R.id.webview);

webview.getSettings().setJavaScriptEnabled(true);

webview.setWebChromeClient(new MyWebChromeClient());

webview.requestFocus();

webview.loadUrl("xxxx"); //这里换成你的url

// 设置web视图客户端

webview.setWebViewClient(new MyWebViewClient());

webview.setDownloadListener(new MyWebViewDownLoadListener());

public class MyWebViewClient extends WebViewClient {

// 如果页面中链接,如果希望点击链接继续在当前browser中响应,

// 而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。

public boolean shouldOverviewUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

public void onPageStarted(WebView view, String url, Bitmap favicon) {

showProgress();

}

public void onPageFinished(WebView view, Strin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值