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

Mat*_*ler 6 javascript pdf safari download ios

我试图在我的网络应用程序的 iOS 用户单击按钮/链接时向他们显示类似这样的 PDF 文件的(本机)下载提示:

iOS下载提示

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

saveAs("https://example.com/pdf", "filename.pdf");
Run Code Online (Sandbox Code Playgroud)

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

<a href="https://example.com/pdf">Download</a>
Run Code Online (Sandbox Code Playgroud)

我尝试使用 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");
Run Code Online (Sandbox Code Playgroud)

不过我可以控制服务器响应。这些是我当前设置的标题

Content-Type:  application/pdf
Content-Disposition: attachment; filename="Bauhaus%20-%2001-04-2019%2015-59.pdf"
Run Code Online (Sandbox Code Playgroud)

提前致谢!

dan*_*btl 6

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