首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获取文件名将其放入webview DownloadListener中的下载器文件

获取文件名并将其放入WebView DownloadListener中的下载器文件,可以通过以下步骤实现:

  1. 首先,需要在WebView中设置一个DownloadListener,用于监听下载事件。可以通过调用WebView的setDownloadListener方法来实现,示例代码如下:
代码语言:txt
复制
webView.setDownloadListener(new DownloadListener() {
    @Override
    public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
        // 在这里处理下载事件
    }
});
  1. 在DownloadListener的onDownloadStart方法中,可以获取到下载文件的相关信息,其中contentDisposition参数包含了文件名。可以通过解析contentDisposition获取文件名,示例代码如下:
代码语言:txt
复制
String filename = "";
String[] parts = contentDisposition.split(";");
for (String part : parts) {
    if (part.trim().startsWith("filename")) {
        String[] name = part.split("=");
        filename = name[1].trim().replaceAll("\"", "");
        break;
    }
}
  1. 接下来,可以使用获取到的文件名进行下载操作。可以使用Android的DownloadManager来实现文件下载,示例代码如下:
代码语言:txt
复制
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename);
DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
long downloadId = downloadManager.enqueue(request);

在上述代码中,将文件名设置为下载文件的目标路径,并使用DownloadManager的enqueue方法开始下载。

总结: 通过以上步骤,可以获取文件名并将其放入WebView DownloadListener中的下载器文件。这样可以实现在WebView中点击下载链接时,自动下载文件并保存到设备中指定的位置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在前端下载后端返回文件流时,获取请求头中文件名称?

前言在前后端分离开发模式下,前端需要从后端获取文件流,以便进行文件下载。同时,前端还需要获取请求头中文件名称,以便为用户提供更加友好下载体验。...本文将介绍如何在前端下载后端返回文件流时,获取请求头中文件名称。2. 获取文件流前端可以通过发送请求方式获取后端返回文件流。...响应数据包含在 response.data ,前端可以利用浏览提供 Blob 接口将文件流转换为下载链接。3....在前端下载文件时,可以通过获取响应头中 Content-Disposition 实体头字段,进而获取文件名称。...总结本文介绍了如何在前端下载后端返回文件流时,获取请求头中文件名称。

7.6K01

Android使用WebView实现文件下载功能

本文实例为大家分享了WebView实现文件下载功能具体代码,供大家参考,具体内容如下 本节引言 本节给大家介绍WebView下载文件知识点,当我们在使用普通浏览时候,比如UC, 当我们点击到一个可供下载链接时候...,就会进行下载WebView作为一个浏览组件, 当然也是支持下载,我们可以自己来写下载流程,设置下载文件放哪,以什么文件名 保存,当然也可以调用其它内置浏览来进行下载,比如Chrome...1.调用其它浏览下载文件: 这个很简单,我们只需为WebView设置setDownloadListener,然后重写DownloadListener onDownloadStart,然后在里面写个...,会打开一个对话框供你选择其中一个浏览进行下载~ 2.自己写线程下载文件 当然,你可能不想把下载文件放到默认路径下,或者想自己定义文件名等等,你都可以自己来写 一个线程来下载文件,实现示例代码如下...~~~~"); } } 然后MainActivity.java创建并启动该线程: wView.setDownloadListener(new DownloadListener(){ @Override

1.6K20
  • 如何在 Go 函数获取调用者函数名、文件名、行号...

    如果让我们用 Go 设计一个Log Facade,就需要我们自己在门面里获取调用者函数名、文件位置了,那么在Go里面怎么实现这个功能呢?...) Caller 函数会报告当前 Go 程序调用栈所执行函数文件和行号信息。...//获取是 CallerA函数调用者调用栈 pc1, file1, lineNo1, ok1 := runtime.Caller(1) } 函数返回值为调用栈标识符、带路径完整文件名...、该调用在文件行号。...获取调用者函数名 runtime.Caller 返回值第一个返回值是一个调用栈标识,通过它我们能拿到调用栈函数信息 *runtime.Func,再进一步获取到调用者函数名字,这里面会用到函数和方法如下

    6.5K20

    Android开发笔记(六十四)网页加载与JS调用

    内置浏览 网页视图WebView 如果一个网站已经有现成网页及业务逻辑,那么使用WebView将其内嵌到app,省去了app重画页面与http通信事情,无疑是更经济做法。...下面是WebView常用方法: getSettings : 获取浏览web设置信息。 addJavascriptInterface : 添加本地js代码接口。...setWebChromeClient : 设置浏览交互事件。 setDownloadListener : 设置文件下载监听。 loadData : 加载文本数据。...可在此设置文件下载方式,以及文件保存路径。...因为WebView加载网页是异步,所以loadUrl方法调用js无法直接获得返回值。多数情况只能在js代码回调Android方法,从而间接获取Android调用js返回值。

    6.4K10

    Android WebView实现文件下载功能

    原来是因为WebView默认没有开启文件下载功能,如果要实现文件下载功能,需要设置WebViewDownloadListener,通过实现自己DownloadListener来实现文件下载。...Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); } } 这只是调用系统已经内置浏览进行下载...,还没有WebView本身进行文件下载,不过,这也基本上满足我们应用场景了。...我在项目中运用 项目要求这样: 1.需要使用WebView加载一个网页; 2.网页中有文件下载链接,点击后需要下载文件到SDcard; 3.然后自动打开文件; 下面是具体解决办法...页回退而不是推出浏览,需要在当前Activity处理并消费掉该Back事件。

    4.1K20

    WebView想说爱你不容易啊

    使用 一开始相信大家都是直接在布局文件添加WebView控件,当然我一开始也是这样做,就是为了简单,而且也不知道这样会出现什么问题。...在重复打开有WebView页面时,你会发现,应用内存会不断升高,销毁了之后也不会降下来,点击GC也降不下来,这样就出现了内存泄漏了,这时你就会发现,这样使用WebView是不正确,那么最好方式是如何使用呢...还有其他不可预估问题,最好还是用当前activityContext是最合适。 上面说如何WebView添加进来进行使用,然后到底它有哪些属性是我们在开发需要使用到呢?..., String url) { //需要设置在当前WebView显示网页,才不会跳到默认浏览进行显示 return true; }...(new DownLoadListener());//下载监听 private class DownLoadListener implements DownloadListener { @

    70320

    WebView完全解读

    Cookie数据 我们上面获取到了Cookie或者通过其他途径获得了Cookie,如何WebView设置Cookie呢?...文件下载 调用其它浏览下载文件 运行图 ?...("http://www.oschina.net/app"); // 然后,找到下载地方,这个时候点击下载,就可以调用手机内置浏览下载了 //WebView默认没有开启文件下载功能...当然,你可能不想把下载文件放到默认路径下,或者想自己定义文件名等等,你都可以自己来写 一个线程来下载文件,实现示例代码如下: DownLoadThread.java package com.turing.base.activity.webview.WebView_Download..., // 如果要实现文件下载功能,需要设置WebViewDownloadListener webView.setDownloadListener(new DownloadListener

    3.3K10

    androidWebView附件问题解决

    webview好处我们其实都清楚:1.可以直接显示和渲染web页面 2.直接显示网页webview可以直接用html文件(网络上或本地assets)作布局 3.可以和JavaScript交互调用 但是同时...ios是可以直接解析加载出这些文件,估计这个是ios浏览内核强大原因,但是android 默认是无法解析显示出这种附件。...android webview只是一个对浏览内核封装,本身不具备打开word,excel,ppt,pdf文件功能,即使可以打开,也必须借助第三方专用插件或者poi库。...没有头绪时候,我用qq做了一个测试,把我们html链接发到我手机qq上 ,然后在qq上点击html上附件,发现是先下载,然后提示用手机上相关软件打开,比如 三方浏览(UC浏览,QQ浏览)还有...* 如果是文档文件 ,就是调用系统浏览下载,如果安装了多个浏览,会弹出选择界面;如果是图片就是直接打开效果*/ private String mUrl = "http://shouji.baidu.com

    1.1K20

    Android经典实战之OkDownload:一个经典强大文件下载开源库,支持断点续传

    监听下载状态 OkDownload 提供了多种监听,如 DownloadListener1 到 DownloadListener4,以及 DownloadListener4WithSpeed,开发者可以根据需要选择合适监听来接收下载过程回调...以下是分段下载及合成详细过程: 1、 任务创建与配置:通过 DownloadTask.Builder 创建下载任务,并设置相关参数,如文件保存路径、文件名、线程数等。...2、 断点信息获取:在开始下载前,OkDownload 会尝试获取任务断点信息。如果任务之前已经部分下载,它会从中断地方继续下载,这是通过检查数据库断点记录来实现。....、 状态回调:在整个下载过程,OkDownload 通过各种监听(如 DownloadListener4 或 DownloadListener4WithSpeed)提供状态回调,开发者可以根据这些回调更新...9、任务结束:下载完成后,OkDownload 会从数据库删除该任务断点信息,并通过监听回调通知任务完成。

    21710

    Retrofit实现带进度下载

    效果图 在demo我分别实现了视频和图片下载,并附带有下载进度显示,视频下载完成后运用exo播放直接播放,图片只是用Glide简单展示了一下。好了,我们步入正题吧!...其中我们在下载进度回调返回进度百分比,在此可以将进度显示在控件上;在下载结束回调返回下载至本地文件路径,在此可直接对下载完成文件进行操作。如果你还有一些个性化需求,可以自行添加。...,downloadListener是第三步我们设计下载回调 先截取url最后一个'/'之后内容,得到我们将要存储到本地文件名,然后创建该文件,通过网络请求得到Response对象,接着开启子线程,...和downloadListener 通过Response对象我们可以获取到InputStream输入流,file是之前创建好本地文件夹,downloadListener是第三步我们设计下载回调 ok...最后别忘记在finally关闭输入输出流! 到此,我Retrofit带进度下载文件核心代码已经介绍完毕了!有木有迫不及待想要用用试试呢!

    1.1K20

    使用Retrofit下载文件并实现进度监听示例

    1.前言 最近要做一个带进度条下载文件功能,网上看了一圈,发现好多都是基于 OkHttpClient 添加拦截来实现,个人觉得略显复杂,所以还是采用最简单方法来实现:基于文件写入来进行进度监听...默认情况下, Retrofit 在处理结果前会将服务 Response 全部读进内存。如果服务端返回是一个非常大文件,则容易发生oom。...使用 @Streaming 主要作用就是把实时下载字节就立马写入磁盘,而不用把整个文件读入内存。...") //通过线程池获取一个线程,指定callback在子线程运行。...((int) (100 * currentLength / totalLength)); } //下载完成,并返回保存文件路径 downloadListener.onFinish

    3.9K10

    带进度条webview

    如果不使用系统自带TitleBar(即Activity被设置@android:style/Theme.NoTitleBar),那就需要自己来写进度条了,这里封装了一个自定义控件和加载网页公共...正文 一、截图 二、自定义控件 复制代码 /**  * 带进度条WebView  * @author 农民伯伯  * @see http://www.cnblogs.com/over140...        super.onCreate(savedInstanceState);         setContentView(R.layout.commom_web);         // ~~~ 获取参数...DownloadListener() {             @Override             public void onDownloadStart(String url, String...2、如果加载页面有需要下载文件,需要设置setDownloadListener方法,根据项目实际需求定制。 3、自定义控件是在转载,忘记出处,感谢~~

    69550

    Android webview加载https链接错误或无响应解决

    最近做无线WiFi时候,在最后认证成功时候会弹出一个广告页,于是用webview去加载了一下,结果没反应,打印url出来看了一下,发现是https格式,在使用WebView加载https资源文件时...下面是列出几个问题 在webview跳转别的页面无响应 在webview下载文件无响应 部分网址链接无法显示 部分网址打开自动跳转到浏览 1.在webview跳转别的页面无响应 修改之前代码如下...修改完成后就可以在webview跳转别的url链接了,就算是解决了第一个问题吧。 2.在webview下载文件无响应 因为本身webview不具备下载功能,所以需要让系统处理或者自定义下载。...webview给我们提供了一个下载监听接口,下面我们来实现下载处理: class MyDownLoad implements DownloadListener { @Override public...4.部分网址打开自动跳转到浏览 接到上面所讲,打开部分网址跳转到浏览了,如何不让他跳转呢,返回true可以禁止跳转,但部分网址在webview无法打开,接下来,不给它直接返回true或false了

    4.5K10

    使用Retrofit+RxJava实现带进度下载文件

    Retrofit+RxJava已经是目前市场上最主流网络框架,使用它进行平常网络请求异常轻松,之前也用Retrofit做过上传文件下载文件,但发现:使用Retrofit做下载默认是不支持进度回调...,但产品大大要求下载文件时显示下载进度,那就不得不深究下了。...这里核心是source方法,返回ForwardingSource对象,其中我们重写其read方法,在read方法中计算百分比,并将其传给回调downloadListener。...4、拦截 只封装ResponseBody 是不够,关键我们需要拿到请求ResponseBody ,这里我们就用到了拦截Interceptor 。...支持RxJava; 使用RxJavamap方法将responseBody转为输入流; 在doOnNext中将输入流写入文件; 当然也需要注意下载回调各个位置。

    2.6K10
    领券