ios - Blob 下载不适用于 iOS Chrome 或 Firefox
问题描述
在 iOS 上,在 Chrome 和 Firefox 中,使用将对象 URL 嵌入 DOM 中的隐藏链接并以编程方式单击它的技术将 blob 保存到文件中是行不通的。会发生以下情况:
- JSON(应用程序/json 类型的 blob)以纯文本形式显示 JSON,但不下载它。
- XLSX 电子表格(类型为 application/octet-stream 的 blob)什么都不做。
- PNG(图像/png 类型的 blob)显示图像但不下载它。
- SVG(图像/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);
如何使用户能够下载在 iOS Chrome 和 Firefox 上的浏览器中创建的数据?
解决方案
推荐阅读
- python - 在 Python 中有效地计算 pf CDF 值
- javascript - 在 EmberJS 中,如何在控制器中使用转换数据?
- java - Java - 根据泛型类型的字段应用不同的逻辑
- xcode - 插件开发 - 将自定义框架嵌入到 XPC
- javascript - YouTube Api V3 - Videos.update - 禁止错误
- numpy - 掷硬币:n 次试验中具有期望值的试验频率
- ruby - 将用户输入插入另一种方法时遇到问题
- javascript - 如何在 TypeScript 中将数组初始化为元组类型?
- python - Python 3 计算 CSV 中的行数
- python - 我的 python 代码中的 Addition 不会按我想要的方式工作。谁能解释为什么?