对于iOS,使用.output而不是.save的jsPDF文件名未显示

问题描述

我正在使用最新的iOS 14.0.1和jsPDF 2.1.1。这是Safari和Chrome的3种情况:

Safari:

  1. 使用jsPDF.save('myfilename.pdf')。此处没有问题,PDF在同一页面中打开,然后当您单击浏览器的“共享”按钮时,将弹出共享对话框,其中带有预览图标,显示PDF和标题“ 1 Link and 1 Document”以及下面的blob url。如果选择“保存到文件”,则会看到正确的名称myfilename.pdf

  2. 使用window.open(jsPDF.output('bloburl','myfilename.pdf'))window.open(jsPDF.output('bloburl',filename: { 'myfilename.pdf' })),除“保存到文件显示UnkNown.pdf

    之外,其他与上述相同。
  3. 使用navigator.share() API:

    navigator.share({ title: 'my title',url: jsPDF.output('bloburl','myfilename.pdf') })

    这会立即弹出本机共享对话框,但是好像文件无法识别,因为几乎没有菜单选项。在半相关的音符上,我在点击事件上首次调用navigator.share(),但第一次出现却没有任何后续点击。

Chrome: 所有这三种情况都会产生相同的共享对话框,似乎无法识别PDF,如果您尝试通过文本消息与朋友共享,则会发送Blob链接文本。

我正在寻找统一的下载/共享解决方案。我调查了<a download="filename.pdf" href="bloblinkgoeshere">,但这提出了iOS的新一批跨浏览器兼容性问题。 Chrome似乎使用dataurlstring而不是bloburl,但是〜6MB的pdf文件花了大约10秒钟才能生成下载链接。 Safari都不兼容。但是,我尝试了一个gif文件的base64字符串,它似乎可以使用safari,但不能使用pdf数据uri。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)