因此,我尝试编写一个文件(准确地说是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.dir
在init
函数上初始化(调用构造函数):
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'
答案 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()
就足够了。