在 iOS Safari 上触发 PDF 文件下载提示

Trigger download prompt on iOS Safari for PDF File

我正在尝试向我的网络应用程序的 iOS 用户显示一个(本机)下载提示,当他们单击 button/link:

不幸的是,我尝试的所有操作都导致 Safari 在新选项卡或当前选项卡中打开文件。我试过像这样使用 FileSaver.js

saveAs("https://example.com/pdf", "filename.pdf");

我尝试了一个 a 标签:(有和没有 target="_blank"

<a href="https://example.com/pdf">Download</a>

我尝试使用 fetch 获取文件并使用 FileSaver.js 保存 Blob:

const res = await fetch("https://example.com/pdf", {
        mode: "cors",
        method: "GET",
        cache: "force-cache",
        headers: {
          Accept: "application/pdf",
        },
      });

const blob = await res.blob();

saveAs(blob, "filename.pdf");

虽然我可以控制服务器响应。这些是我目前设置的headers

Content-Type:  application/pdf
Content-Disposition: attachment; filename="Bauhaus%20-%2001-04-2019%2015-59.pdf"

提前致谢!

如果您将服务器响应中的 Content-Type header 设置为 application/octet-stream,Safari 将不会将该文件识别为 PDF,因此不会打开它并提供下载提示。