如何在 iOS Safari 上使用 javascript 下载 JSON 文件?

How to download a JSON file with javascript on iOS Safari?

我读了很多关于这个主题的文章,而 safari 似乎对此有问题(甚至 filesaver.js)。我仍然想知道,你们中的任何人是否有一种方法可以让用户单击一个按钮并将 json 文件(带有文件名)下载到他的设备。

那里有很多线程,safari 过去似乎有问题,现在已经解决了。但当前的 safari 版本似乎仍然无法做到这一点。我把最后的希望寄托在你们身上。 iOS 更新到最新版本没有帮助。

这是我的方法,适用于 Safari 桌面:

    exportButton.addEventListener("click", () => {
      const appState = databaseConnector.getApplicationStateAsString();
      const blob = new Blob([appState], { type: "text/json" });
      const fileName = `backup_${
        new Date().toISOString().split("T")[0]
      }.json`;

      const tempElement = document.createElement("a");
      const url = URL.createObjectURL(blob);
      tempElement.href = url;
      tempElement.download = fileName;
      document.body.appendChild(tempElement);
      tempElement.click();

      setTimeout(function () {
        document.body.removeChild(tempElement);
        window.URL.revokeObjectURL(url);
      });
    });

试试下面的代码。

<!DOCTYPE html>
<title>Answer</title>
<a id=a download=answer.json href style=-webkit-appearance:button;color:black;text-decoration:none>Download</a>
<script>
a.href = "data:text/json;," + JSON.stringify({name: "answer"})
</script>