Cordova Ionic Native File 插件 - 它在 iOS 中将文件存储在哪里?

Cordova Ionic Native File plugin - Where does it store the files in iOS?

我一直在尝试在 iOS 上保存文件。现在我 运行 正在 Xcode 到我的 phone。

当我 运行 应用程序时,它说已成功保存。但是当我使用像 FileApp、FileManager、iCloud 和 Apple 蹩脚的文件应用程序这样的文件管理器应用程序时,我没有看到任何文件。

我的问题是,我从网络搜索中得知,为了保存文件,iOS 为该应用程序创建了一个沙盒文件夹。

如果我一直将其保存到 this.file.documentDirectory,用户如何在比方说 Pages 或 Numbers 应用程序中打开它? (你知道 Apple 的 Word 和 Excel 外行的替代品。)

这是代码。

 writeToIOS(opts : {
    fileName: string,
    text: any
  }) : Promise < IResponse < any >> {
    let response: IResponse < boolean > = {
      success: false,
      error: '',
      data: false
    };
    const options: IWriteOptions = {
      replace: true
    };
    return new Promise((resolve, reject) => {
      const path = this.file.documentsDirectory;
      const directory = 'Attendance Log';
      this
        .file
        .checkDir(path, directory)
        .then(res => {
          this
            .file
            .writeFile(path + directory, opts.fileName, opts.text, options)
            .then(res => {
              response = {
                ...response,
                success: true,
                error: res,
                data: res
              };
              resolve(response);
            })
            .catch(error => reject(error));
        })
        .catch(() => {
          this
            .file
            .createDir(path, directory, true)
            .then(directory => {
              this
                .file
                .writeFile(path + directory.name, opts.fileName, opts.text, options)
                .then(res => {
                  response = {
                    ...response,
                    success: true,
                    error: res,
                    data: res
                  };
                  resolve(response);
                })
                .catch(error => reject(error));
            })
            .catch(error => reject(error));
        });
    });
  }

编辑:

client/user 应该做的是能够选择文件并在 his/her 最喜欢的应用程序中打开它。即文件管理器应用程序或 Writer 或电子表格应用程序。

我对iOS没有太多经验,但我认为你选择了很好的目录。

cordova.file.documentsDirectory - Files private to the app, but that are meaningful to other application (e.g. Office files). Note that for OSX this is the user's ~/Documents directory. (iOS, OSX)

在 iOS 我会搜索 /var/mobile/Applications/<UUID>/Documents

这是将 cordova-plugin-fileopener2 与 ionic 本机文件打开器结合使用:

const options = {
  replace: true
};
const path = this.file.documentsDirectory;
const directory = 'Attendance Log';
this.file
   .checkDir(path, directory)
      .then(res => {
   this.file
      .writeFile(path + directory, opts.fileName, opts.text, options)
         .then(res => {
   this.fileOpener
      .open(`${path}${directory}/${opts.fileName}` , 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
      .then(() => ...)
      .catch(error => ...);
})
.catch(error => ...);