Ответ 1
Поскольку вы не можете отлаживать здесь, есть три проблемы, с которыми я столкнулся, пока не получил ее на работу, скорее всего, вторая проблема, если на 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 Info.plist must contain an NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app Info.plist must contain an NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.
Решение состоит в том, чтобы добавить NSPhotoLibraryAddUsageDescription
в 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>