移动Safari下载问题:该操作无法完成。 (webkitblobresource错误1。)

时间:2019-01-24 04:57:08

标签: angular mobile-safari

我的Angular应用程序具有pdf下载选项。当我在Iphone(IOS 12)Safari浏览器中运行应用程序时,出现以下错误消息,如图所示

我该如何解决?

ios_safari_issue

1 个答案:

答案 0 :(得分:8)

如果您要以编程方式将ancor标记注入DOM作为解决方案,请确保不要过早清除它。

对我来说100ms可以正常工作,但是由于无论哪种方式都不可见,我选择清除DOM的延迟时间为1秒。

示例代码:

this.fileApi.download(<your args>).subscribe((data: Blob) => {
    const url = window.URL.createObjectURL(data);
    const a = document.createElement('a');
    a.style.display = 'none';
    a.href = url;

    // the filename you want
    a.download = <your filename>;
    document.body.appendChild(a);
    a.click();

    setTimeout(() => {
      window.URL.revokeObjectURL(url);
      document.body.removeChild(a);
    }, 1000);
  })