У меня действительно странная проблема с получением локальных файловых данных на android с помощью ionic-framework.
Ситуация: у меня есть файл, который был ранее создан по пути file: /// data /user / 0 / app-id / files / my-folder / xyz.json
Я могу найти файл в "оболочке adb", я также проверил данные внутри с помощью cat, и все в порядке,В обозревателе файлов Android-Studio я также проверил файл.
С помощью встроенного плагина файлов '@ ionic-native / file / ngx' Я также могу подтвердить, что файлтам.
const jsonFile = "pathToFile";
this.file.resolveLocalFilesystemUrl(jsonFile).then(fileEntry => {
console.log(fileEntry.nativeURL);
}).catch(err => {
console.log(err);
});
Результат:
filesystem: FileSystem {name: "files", root: DirectoryEntry}
isDirectory: false
isFile: true
Это также решает другие вещи правильно, например. name, fullPath, nativeURL
Теперь проблема начинается, потому что я не могу найти способ получить данные.
this.file.readAsText('', jsonFile).then(fileData => {...
this.file.readAsDataURL('', jsonFile).then(fileData => {...
this.file.readAsBinaryString('', jsonFile).then(fileData => {...
this.file.readAsArrayBuffer('', jsonFile).then(fileData => {...
Все они приводят к сообщению {code: 5,: "ENCODING_ERR"}
Я также пытался получить данные с помощью встроенного http-плагина, с выборкой и обычным угловым запросом http ...
Все приводит к cors, 404 и т. Д. .
В общем, как я могу получить json-данные по локальному пути, который указывает на файл : ///data/user/0/app-id/files/...
Ионная информация:
Ionic:
Ionic CLI : 5.4.2 (xxxx/.npm-packages/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 4.10.0
@angular-devkit/build-angular : 0.801.3
@angular-devkit/schematics : 8.1.3
@angular/cli : 8.1.3
@ionic/angular-toolkit : 2.0.0
Cordova:
Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : android 8.1.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.2, (and 7 other plugins)
Utility:
cordova-res : 0.7.0
native-run : 0.2.8
System:
Android SDK Tools : 26.1.1 (xxxx/Library/Android/sdk)
ios-deploy : 1.9.4
NodeJS : v12.10.0 (/usr/local/Cellar/node/12.10.0/bin/node)
npm : 6.11.3
OS : macOS Mojave
Xcode : Xcode 11.0 Build version 11A420a