У меня есть код JavaScript, где я использую атрибут загрузки тега привязки, чтобы установить имя файла.
Ниже приведен мой фрагмент кода:
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 - это блок данных. Этот код прекрасно работает со всеми браузерами, 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
}
}
Я хочу получить имя файла, присвоенное файлу в атрибуте загрузки якоря. Как я могу получить имя файла для того же? Я использую Android API 28 для тестирования.