ionic 3 iOS writeFile“无效的参数类型”

时间:2019-01-06 17:17:53

标签: ios cordova ionic3

因此,我尝试编写一个文件(准确地说是geooJSON),在Android上运行良好,但在iOS上,我收到“代码:无效的参数类型”。内容是JSON字符串,所以不确定发生了什么。

这是我的saveFile函数:

private saveFile(fileName: string, data: string, okMessage: string, errorMessage: string) {
    this.file.writeFile(this.dir, fileName, data, { replace: true })
      .then(_ => {
        this.loadingServiceProvider.dismiss();
        this.showMessage(`${okMessage} ${fileName}`);
      })
      .catch(err => {
        this.loadingServiceProvider.dismiss();
        this.showMessage(`${errorMessage} ${fileName}`);
        console.log(err)
      });
  }

this.dirinit函数上初始化(调用构造函数):

init() {
    console.log(`file: ${this.file}`)
    this.dir = this.file.dataDirectory;
    console.log(`file.dataDirectory: ${this.file.dataDirectory}`)
    if (this.connectivityServiceProvider.isAndroid()) {
      this.dir = this.file.externalDataDirectory;
      console.log(`file.externalDataDirectory: ${this.file.externalDataDirectory}`)
    } else if (this.connectivityServiceProvider.isIOS()) {
      this.dir = this.file.documentsDirectory;
      console.log(`file.documentsDirectory: ${this.file.documentsDirectory}`)
    }
    console.log(`dir: ${this.dir}`)
    this.shareServiceProvider.setExportDirectory(this.dir);
  }

this.file'@ionic-native/file'

1 个答案:

答案 0 :(得分:0)

简而言之,解决该问题的方法是在传递给file.writeFile(..)函数之前使用JSON.stringify(data)

现在我解决了该错误消息,很清楚了。我被类型处理欺骗了。

我使用此功能从存储(@ ionic / storage)中检索数据值

load(key: string): Promise<string> {
  return this.storage.get(key);
}

现在,尽管Promise的值应该是字符串,但是因为我使用JSON.parse(obj)作为set上的数据,所以get方法返回obj,所以类型是错误的,应该是任意

  

我编辑了答案,因为不正确,起初我以为toString()就足够了。