我试图在Ionic Native
中检索保存到 iPhone 本地存储的图片的数据 URL,在真实设备上运行,而不是在模拟器上运行。
我在用File.readAsDataURL
我使用 X-code 来查看手机的本地存储空间,我可以在这个位置看到图像。
/var/mobile/Containers/Data/Application/ *我的 APP ID * /Documents/www/assets/images/image.png
这是我的代码:
import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { File } from 'ionic-native';
declare var cordova: any;
@Component({
selector: 'get-picture',
templateUrl: 'get-picutre.html'
})
export class GetPictureComponent {
fs:string = cordova.file.documentsDirectory;
constructor(
public platform: Platform
) {}
ionViewDidEnter() {
this.platform.ready().then(() => {
console.log("FileSystem", this.fs); //logs FileSystem file:///var/mobile/Containers/Data/Application/* My APP ID */Documents/
File.readAsDataURL(this.fs, 'www/assets/images/image.png')
.then((imgData) => console.log('Image Data', imgData))
.catch((error) => console.log('error', error)); //Logs error {"code":1,"message":"NOT_FOUND_ERR"}
});
}
}
我尝试过基本相同的东西
window.resolveLocalFileSystemURL(file:///var/mobile/Containers/Data/Application/* My APP ID */Documents/www/assets/images/image.png
我再次收到错误代码 1。
我使用以下首选项更新了我的 config.xml 文件:
<preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" />
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" />
有谁知道为什么这不起作用?
离子版 - 2.1.14
提前致谢!
1 回答
我对这个问题做了一些深入研究。
首先,我在我的根文档目录
(cordova.file.documentsDirectory)
上做了File.listDir()
。我发现文件系统中唯一可以看到的文件目录中的文件夹是"NoCloud"
。尽管 Wikitude 成功地将图像放在名为
"/www/assets/images/"
的此目录中的文件夹中,但文件系统无法查看,写入或读取它。我设置 wikitude 将图像保存到“NoCloud”文件夹中,现在我可以成功使用
File.readAsDataUrl()
从“NoCloud”文件夹中获取 base64 图像数据。希望这有助于某人。