无法下载base64作为pdf文件在Safari iOS与Reat JS

u0sqgete  于 2023-03-09  发布在  iOS
关注(0)|答案(1)|浏览(198)

我在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。

plicqrtu

plicqrtu1#

你有没有试
link.dispatchEvent(new Event("click"));
而不是link.click();

相关问题