PDF 文件可以在桌面网络浏览器上下载,但不能在移动网络浏览器上下载

问题描述 投票:0回答:1

我的 JavaScript 代码如下。它用于下载 PDF,该 PDF 作为数据 url 从服务器返回。

fetch('/Documents/GenerateReportPdf',
{
     method: 'POST',
     body: formData,
})
.then(response => {
     return response.json();
})
.then(data => {

     const fileName = `Report.pdf`;
     const downloadLink = document.createElement('a');
     downloadLink.href = data.url;
     downloadLink.download = fileName;
     downloadLink.click();
})
.catch(err => {
     console.error(err);
});

响应JSON是这样的:

url: "data:application/pdf;base64,......."

此代码适用于桌面网络浏览器,并且文件已成功下载,但在移动设备上没有下载任何文件,并且我也没有收到任何错误。

javascript json download fetch-api
1个回答
0
投票

我认为桌面浏览器和移动设备之间的区别在于点击和触摸。在移动设备中,它们正常工作,但您使用“download.click()”模拟了“单击”操作。有时它不起作用,因为 onClick 和 onTouch 不同。也许移动端认为 click() 不合适。在屏幕上制作“a”并让用户单击它或使用路线怎么样?

© www.soinside.com 2019 - 2024. All rights reserved.