尝试在 Capacitor Ionic 应用程序上写入大型 PDF 文件时,Filesystem.writeFile() 崩溃

问题描述 投票:0回答:1

我有使用 Ionic Framework 制作的应用程序,该框架使用电容器(Angular)。这些应用程序同时部署在 Android 和 IOS 上。从应用程序中,您可以下载生成的 PDF。

我使用以下代码来执行此操作:

  static async writeAndOpenFile(data: Blob, fileName: string) {
    const reader = new FileReader();
    reader.readAsDataURL(data);
    reader.onloadend = async function () {
      const base64data = reader.result;

      try {
        const result = await Filesystem.writeFile({
          path: fileName,
          data: <string>base64data,
          directory: Directory.Data,
          recursive: true
        });

        let fileOpener: FileOpener = new FileOpener();
        fileOpener.open(result.uri, data.type)
          .then(() => console.log('File is opened'))
          .catch(e => console.log('Error opening file', e));
      } catch (e) {
        console.error('Unable to write file', e);
      }
    }
  }

但是,当我尝试编写较大的 PDF 文件时,应用程序崩溃了。我想知道是否有解决方案

谢谢你

angular cordova ionic-framework capacitor capacitor-plugin
1个回答
0
投票

Filesystem.writeFile(...)
方法不适用于写入大文件。您应该使用以下两个插件之一:

为了避免此类问题,您根本不应该将文件加载到 WebView 中。

© www.soinside.com 2019 - 2024. All rights reserved.