javascript - webview的onDownloadStart参数没有设置?如何检索文件名?

标签 javascript java android android-webview

我有javascript代码,我使用 anchor 标记的下载属性来设置文件名。
以下是我的代码 fragment :

const fileReader = new FileReader();
fileReader.onload = () => {
const link = <HTMLAnchorElement>windowService.document.createElement("a");
link.href = fileReader.result;
link.setAttribute("download", fileName);
link.target = "_blank";

windowService.document.body.appendChild(link);
link.click();
};
fileReader.readAsDataURL(testFile);
}

其中 testFile 是数据 block 。此代码适用于所有浏览器、iOS 应用程序,但不适用于 android 应用程序。
在 Android webView 上,调用了 onDownloadListener 函数,只设置了 url 参数,没有设置其他参数。
    webView.setDownloadListener(new DownloadListener() {
                @Override
                public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
// url: set as base64 encoded content
// no other attribute is set. I understand content disposition can be used to get file name but that is not set either
}
}

我想在 anchor 的下载属性上获取分配给文件的文件名。如何检索相同的文件名?我正在使用 Android API 28 进行测试。

最佳答案

我用了URLUtil工作顺利

webView.setDownloadListener(new DownloadListener() {
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
            String filename = URLUtil.guessFileName(url, contentDisposition, mimetype);
            Toast.makeText(MainActivity.this, filename, Toast.LENGTH_SHORT).show();
        }
    });

关于javascript - webview的onDownloadStart参数没有设置?如何检索文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52247505/

相关文章:

java - 一旦客户端确认,JMS 主题上的消息是否可用?

Java动态定义变量类型

java - 从 MySQL php 中的特定列获取最大 ID 和最小 ID

Android Phonegap 插件和谷歌分析

javascript - 滚动到 flexbox 容器中的元素

javascript - 我如何使用 Mongoose 确定用户是否喜欢帖子

java - 如何创建数组元素的副本?

android - 如何告诉默认设备相机应用程序不要拍摄最大的图像,而是拍摄较小的图像?

javascript - 在 Chrome OS 中检测 "Tablet"模式转换的事件?

javascript - Coinbase api v1,创建付款按钮时出现问题