在Ipad的Safari上下载和查看文档

时间:2019-05-17 07:18:11

标签: angular safari blob filesaver.js

在我们的项目中,我们使用了blob构造函数和FileSaver进行下载    并查看文档(.pdf,.xls,.csv)。它可以在Windows上正常运行,    具有所有浏览器(Chrome,IE,Mozilla)的Android,但是我们遇到了一个问题    在Ipad Safari上。    我们要下载和查看文件。

  The function that I have used in component.ts:
  downloadAndViewPdfFile() {
    this.service().download().subscribe((res) => {
      const fileUrl = URL.createObjectURL(res);
      window.open(fileUrl, '_blank');
    });
  }

它将打开一个新标签,并显示空白页(service.ts)

download(): Observable<any> {
  return this.http.post<any>(this.getPath() + '/download', {responseType: 'blob'} as { responseType: any }).pipe(
    tap(
      (res) => {
        return new Blob([res], {type: 'application/pdf'});
      }
    )
  );
}

它在Windows上下载文件(不显示在新选项卡中),但在Ipad的Safari中显示文件(不显示在新选项卡中)

download(): Observable<any> {
  return this.http.post<any>(this.getPath() + `/download`, {responseType: 'blob'} as { responseType: any }).pipe(
    tap((res) => {
        FileSaver.saveAs(res, 'export.pdf');
      }
    )
  );
}

我想实现的事情是我想在所有系统上查看和下载文件。

0 个答案:

没有答案