Я столкнулся с ошибкой в эмуляторе IOS со следующей функцией при попытке преобразовать путь изображения в строку base64:
imageUploaded(imagePath): void {
console.log(imagePath);
this.newImage = new ImageSource();
this.newImage.fromFile(imagePath)
.then((success) => {
if (success) {
const base64 = this.newImage.toBase64String("jpeg", 100);
console.log(base64);
}
});
}
Вывод двух консольных журналов:
Файл: ///Users/coffee-pot/Library/Developer/CoreSimulator/Devices/F0AE2C35-079B-4D8B-AE57-24A3A9A7F931/data/Media/DCIM/100APPLE/IMG_0006.PNG
и
нуль
Я так долго занимался этим и не могу понять: /
Заранее благодарим за подсказки.
редактировать
Следующая функция - это та, которая загружает изображение и генерирует событие с путем к файлу
uploadImage() {
const milliseconds = new Date().getTime();
this.context.authorize()
.then(() => {
return this.context.present();
})
.then((selection) => {
selection.forEach((selected) => {
const ios = selected.ios;
if (ios && ios.mediaType === PHAssetMediaType.Image) {
const opt = PHImageRequestOptions.new();
opt.version = PHImageRequestOptionsVersion.Current;
PHImageManager.defaultManager()
.requestImageDataForAssetOptionsResultHandler(ios, opt,
(imageData: NSData, dataUTI: string,
orientation: UIImageOrientation, info: NSDictionary < any, any >) => {
const folder = fileSystemModule.knownFolders.documents();
const path = fileSystemModule.path.join(folder.path, milliseconds + ".png");
this.newImage = info.objectForKey("PHImageFileURLKey").toString();
this.imagePath.emit(this.newImage);
});
}
});
});
}