Blob 下载不适用于 iOS Chrome 或 Firefox

Tri*_*ale 5 firefox google-chrome blob download ios

在 iOS 上,在 Chrome 和 Firefox 中,使用在 DOM 中的隐藏链接中嵌入对象 URL 并以编程方式单击它的技术将 blob 保存到文件中是行不通的。发生以下情况:

  • JSON(类型为 application/json 的 blob)以纯文本形式显示 JSON,但不下载它。
  • XLSX 电子表格(应用程序/八位字节流类型的 blob)不执行任何操作。
  • PNG(图像/png 类型的 blob)显示图像但不下载它。
  • SVG(image/svg+xml 类型的 blob)显示图像但不下载它。

下载技术适用于 iOS Safari 以及以下所有桌面浏览器:Chrome、Firefox、Safari 和 Edge。

这是代码:

const blobURL = URL.createObjectURL(blob);

const tempLink = document.createElement("a");
tempLink.style.display = "none";
tempLink.href = blobURL;
tempLink.setAttribute("download", filename);
tempLink.setAttribute("target", "_blank");
document.body.appendChild(tempLink);

tempLink.click();
tempLink.remove();
URL.revokeObjectURL(blobURL);
Run Code Online (Sandbox Code Playgroud)

如何才能让用户下载在 iOS Chrome 和 Firefox 浏览器中创建的数据?