【问题标题】:Trigger download prompt on iOS Safari for PDF File在 iOS Safari 上触发 PDF 文件的下载提示
【发布时间】:2021-02-28 01:32:13
【问题描述】:

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

不幸的是,我所做的一切都导致 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");

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

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

提前致谢!

【问题讨论】:

    标签: javascript ios pdf download safari


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多