我在react项目中使用了这部分代码作为函数:
const handleDownload = (base64String) => {
const link = document.createElement("a");
link.href = `data:application/pdf;base64,${base64String}`;
link.download = "manual.pdf";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
它被附加到一个span
标签上,标签上有一个图像。每当我点击span
时,此函数使用从API接收的base64
字符串下载一个“manual.pdf”文件。
此代码适用于Chrome或Firefox等浏览器,但不适用于iOS(15.7.2)中的Safari
它只是在地址栏中显示data:
一会儿,然后什么也没有发生。
我试图通过获取blob和类似的东西createObjectUrl
,但它没有工作.它创建了这样奇怪的网址:blob:http://MY ADRESS HERE
.在这种情况下,它不适用于任何浏览器.
有什么方法可以让我的功能兼容iOS上的Safari吗?我没有Mac,所以我不知道同样的事情是否适用于Mac上的Safari。
1条答案
按热度按时间plicqrtu1#
你有没有试
link.dispatchEvent(new Event("click"));
而不是
link.click();