Поскольку вы не можете отладить, вот три проблемы, с которыми я сталкивался, пока не заработал, скорее всего, вторая проблема на Android или третья проблема на iOS.
1) Error saving image to gallery cordova_not_available
Исправлено: создание проекта, в котором кордова запекалась с помощью команды ionic start blank --cordova
2) Error saving image to gallary Error while saving image
Я получил это сообщение об ошибке на устройстве Android. Я посмотрел на их реализацию кода здесь https://github.com/Nexxa/cordova-base64-to-gallery/blob/2f531aaa0bf17b900cf6bd9704082e72f183d325/src/android/Base64ToGallery.java
Видели, что они ничего не сделали в отношении разрешений WRITE_EXTERNAL_STORAGE.
Мое решение состояло в том, чтобы добавить AndroidPermissions и проверить разрешения WRITE_EXTERNAL_STORAGE во время выполнения.
hasWriteAccess: boolean = false;
constructor(private base64ToGallery: Base64ToGallery,
private androidPermissions: AndroidPermissions) {
}
ionViewWillEnter() {
this.checkPermissions();
}
checkPermissions() {
this.androidPermissions
.checkPermission(this.androidPermissions
.PERMISSION.WRITE_EXTERNAL_STORAGE)
.then((result) => {
console.log('Has permission?',result.hasPermission);
this.hasWriteAccess = result.hasPermission;
},(err) => {
this.androidPermissions
.requestPermission(this.androidPermissions
.PERMISSION.WRITE_EXTERNAL_STORAGE);
});
if (!this.hasWriteAccess) {
this.androidPermissions
.requestPermissions([this.androidPermissions
.PERMISSION.WRITE_EXTERNAL_STORAGE]);
}
}
saveImage() {
if (!this.hasWriteAccess) {
this.checkPermissions();
}
let options: Base64ToGalleryOptions = {
prefix: '_img',
mediaScanner: true
};
this.base64ToGallery
.base64ToGallery(this.base64Data, options).then(
res => console.log('Saved image to gallery:', res),
err => console.log('Error saving image to gallery:', err)
);
}
3) This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.
Решение - добавить NSPhotoLibraryAddUsageDescription
в имя_проекта / config.xml, вложенное между <platform name="ios"> and </platform>
<config-file parent="NSPhotoLibraryAddUsageDescription" target="*-Info.plist">
<string>Saves images from base64 to your Photo Library</string>
</config-file>