首页
学习
活动
专区
工具
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 实体头字段,进而获取文件名称。...总结本文介绍了如何在前端下载后端返回的文件流时,获取请求头中的文件名称。

8.3K01

如何在 Go 函数中获取调用者的函数名、文件名、行号...

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

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

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

    6.4K10

    WebView想说爱你不容易啊

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

    70820

    Retrofit实现带进度下载

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

    1.1K20

    android中WebView附件问题解决

    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

    WebView完全解读

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

    3.4K10

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

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

    49111

    带进度条的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、自定义控件是在转载的,忘记出处,感谢~~

    70350

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

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

    2.6K10

    Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)

    获取鉴权Token 6. 动态权限请求 7. Api语音合成 8. 音频文件下载 9. 播放 五、源码 声明   本文代码请使用真机运行,别用模拟器虚拟机,谢谢!...音频文件下载 因为这里返回的是一个音频文件,因此不能使用常规的方式来处理,下载当然是下载的项目的缓存目录里面去,当前我在Android10.0上是可以实践的,Android11.0可能要进行分区存储才行...writeToDisk(Response response, DownloadListener downloadListener) { //开始下载...} //下载完成,并返回保存的文件路径 downloadListener.onFinish(file.getAbsolutePath());...合成之后,当文件下载到本地时,这个播放的按钮就会出现。下面来看看日志。 ? 这样就成功了。 9. 播放 文件下载成功之后,也拿到了文件的路径了,下面就是通过这个路径去播放这个音频了。

    2.9K20

    android多线程下载2

    在上一集中,我们简单介绍了如何创建多任务下载,但那种还不能拿来实用,这一集我们重点通过代码为大家展示如何创建多线程断点续传下载,这在实际项目中很常用. main.xml: <?...private final DownloadService downloadService;   /* 线程下载任务的起始点 */ public int start;   /* 线程下载任务的结束点...conn.setRequestMethod("GET");               conn.setRequestProperty("Range", "bytes=" + start + "-" + end); // 设置获取数据的范围...DownloadService {   public static final String TAG = "tag";   /* 用于查询数据库 */ private DBHelper dbHelper;   /* 要下载的文件大小... */ public int fileSize;   /* 每条线程需要下载的数据量 */ private int block;   /* 保存文件地目录 */ private File

    84590

    Electron+Vue开发爬虫客户端2-自动下载网页文件

    (补充:在主进程中有效) item.setSavePath(filePath); 优缺点 这种方式能保证下载文件名称中文不会乱码,但是官方给出的取消默认的下载行为再手动下载的方式行不通,后来发现是在渲染层的...也就是说渲染进程中可以获取下载进度但是没法设置下载位置, 所以在下载地址需要重定向获取的前提下可行的方案有 在主线程中设置文件保存的位置,渲染进程中获取文件的下载进度。...但是如果使用加载静态页面加载到window中的页面无法共享webview中的cookie 对于下载文件地址会重定向,所以使用了follow-redirects这个库。..."); }); } }); request.end(); }, 优缺点 这种方式能够完全自己管控下载的位置及流程 文件名乱码解决方式 NodeJS获取content-disposition...中的文件名中文乱码的解决方法 const iconv = require("iconv-lite"); let buffer = iconv.encode(filename_all, "iso

    3.3K20

    6.网络编程

    这就表明当需要从一个网页跳转到另一个网页时, // 我们希望目标网页仍然在当前WebView中显示,而不是打开系统浏览器。...一个浏览器的基本工作原理也就是如此了.WebView控件,其实也就是向百度的服务器发起了一条HTTP请求,接着服务器分析出我们想要访问的是百度的首页,于是会把该网页的HTML代码进行返回,然后WebView...简单来说,WebView已经在后台帮我们处理好了发送HTTP请求、接收服务响应、解析返回数据,以及最终的页面展示这几步工作,不过由于它封装得实在是太好了,反而使得我们不能那么直观地看出HTTP协议到底是如何工作的...,并发送 ③生成临时文件,设置每个线程的开始和结束位置,再几条开启线程用来下载,将开始,结束和线程id成为它的构造函数的参数 5.在新线程中: ①读取进度文件的大小,如果存在就将开始位置改变 ②再次请求网络...下载文件 http.download(url,//下载请求的网址 target,//下载的数据保存路径和文件名 true,//是否开启断点续传 true,//如果服务器响应头中包含了文件名

    1K130

    Android:你不知道的 WebView 使用漏洞

    如可以执行命令获取本地设备的SD卡中的文件等信息从而造成信息泄露 具体获取系统类的描述:(结合 Java 反射机制) Android中的对象有一公共的方法:getClass() ; 该方法可以获取到当前类...// 如执行完访问文件的命令之后,就可以得到文件名的信息了。...具体步骤如下: 继承 WebView ,重写 addJavascriptInterface 方法,然后在内部自己维护一个对象映射关系的 Map; 将需要添加的 JS 接口放入该Map中 每次当...WebView 的App和浏览器,都有可能受到此漏洞的影响。...例:应用实现了下载功能,对于无法加载的页面,会自动下载到 sd 卡中;由于 sd 卡中的文件所有应用都可以访问,于是可以通过构造一个 file URL 指向被攻击应用的私有文件,然后用此 URL 启动被攻击应用的

    3.3K20

    Android_其他语言交互篇——Js、C#、C、C++

    在android中定义可供js调用的方法 然后,设置webview参数(1、打开js开关;2、设置webviewClient的如下方法返回值为true,否则loadUrl的时候会打开系统的浏览器而不是我们的...WebView在4.4之前,一直是WebKit内核,4.4之后谷歌也看不下去WebKit的性能了就将其内核换成了Chromium。...,我这里就用最简单的方法教大家如何使用。...unity目录 在此Android文件夹下,放入打包好的jar包、AndroidManifest文件,然后根据需要放入assets、libs、res等文件夹(不必全部放入)。...,从他的眼神中我还是看出他对我一点都不相信,呵呵...... ①、准备工作: JNI开发需要NDK及CMake(也可以不使用CMake而是用其他方法,但是CMake用起来最简单易懂,且在安卓Sdk中即可下载说明它比较先进是有很大优势的所以谷歌推荐使用

    2.3K20

    在 Flutter 中使用 WebView

    本文示例代码可在微信公众号「01二进制」后台回复「WebView」查看下载 前言 我们知道在开发 Native App 时经常会有打开网页的需求,可供的选择通常只有两种: 在 App 内部打开网页 通过调用系统自带浏览器打开网页...简单的介绍下 Android 中的 WebView 想实现第一种效果,我们需要使用一个名为 WebView 的东西,先来看看在 Android 中如何实现一个 WebView 吧。...在 Android 中我们需要先在一个 Layout 中放入 WebView 这个控件,然后在对应的 Activity 或者 Fragment 或者各种 Custom View 中执行一个个的 findViewById...,我将其命名为 Browser ,并存放在 browser.dart 文件中。...「01二进制」后台回复「WebView」查看下载

    3.5K20

    Carson带你学Android:你不知道的 WebView 使用漏洞

    如可以执行命令获取本地设备的SD卡中的文件等信息从而造成信息泄露 具体获取系统类的描述:(结合 Java 反射机制) Android中的对象有一公共的方法:getClass() ; 该方法可以获取到当前类...// 如执行完访问文件的命令之后,就可以得到文件名的信息了。...具体步骤如下: 继承 WebView ,重写 addJavascriptInterface 方法,然后在内部自己维护一个对象映射关系的 Map; 将需要添加的 JS 接口放入该Map中 每次当 WebView...WebView 的App和浏览器,都有可能受到此漏洞的影响。...例:应用实现了下载功能,对于无法加载的页面,会自动下载到 sd 卡中;由于 sd 卡中的文件所有应用都可以访问,于是可以通过构造一个 file URL 指向被攻击应用的私有文件,然后用此 URL 启动被攻击应用的

    1.3K10
    领券