我目前正在尝试在Ionic 4中实现聊天功能,该功能包括附加文件的功能。为此,我正在使用FileChooser插件。然后,我想通过FileChooser提供的URI获取文件的base64编码内容。但是,我似乎无法使readAsDataURL调用正常工作。
我已经尝试过使用Base64插件,但是它总是返回一个空字符串,没有上下文指出问题所在。我还尝试了多种方法来提供/分割路径,但是根本找不到该文件,或者出现了与当前版本相同的问题。我还检查了我的AndroidManifest.xml,其中包含
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
以及
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
这是我用来读取所选URI内容的代码:
handleUri (uri : string) {
let $this = this;
console.log("URI: "+uri);
$this.file.resolveLocalFilesystemUrl(uri).then(
(entry) => {
let fileEntry = <FileEntry> entry;
fileEntry.file(
(file) => {
let path : string = fileEntry.toURL();
let mimeType : string = file.type
let dirPath : string = path.substr(0,path.lastIndexOf('/') + 1);
let fileName : string = path.substr(path.lastIndexOf('/') + 1);
console.log("DirPath: "+dirPath);
console.log("FileName: "+fileName);
$this.file.checkFile(dirPath,fileName).then(
(exists) => {
console.log("File does "+( exists ? "" : "not ")+ "exist");
}
);
$this.file.readAsDataURL(dirPath,fileName).then(
(string) => {
console.log("ReadAsDataURL: "+string);
},
(error) => {
console.log("ReadAsDataURL failed: "+JSON.stringify(error));
}
);
}
)
},
(error) => {
console.log(JSON.stringify(error));
}
)
}
人们会认为这些权限足以读取现有文件。 我需要授予其他权限吗?