В моем приложении NS 6.2 Core я пытаюсь загрузить изображение, полученное из серверной части, в виде строки base64. Эта строка должна быть преобразована в imageSource и отображена в элементе изображения. Я тестирую на физическом устройстве Android.
Пока я пытался:
const img = <Image>e.object;
let imageSource = new ImageSource();
var isLoaded = imageSource.loadFromBase64('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i...');
if (isLoaded) {
img.imageSource = imageSource;
}
Строка base64 подтверждена как действительная, но isLoaded всегда ложна.
Я также пробовал:
const s: string = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8...';
imageSource.fromBase64(s).then((loaded:boolean) => {
img.imageSource = imageSource;
});
Это тоже не сработало, ошибок нет, просто ничего не загружается в образ.
Последнее, что я попробовал, было:
import { fromBase64, ImageSource } from "tns-core-modules/image-source";
const s: string = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8...';
img.imageSource = fromBase64(s);
Это приводит к ошибке:
System.err: An uncaught Exception occurred on "main" thread.
System.err: Calling js method onCreateView failed
System.err: Error: java.lang.IllegalArgumentException: bad base-64
У меня нет идей. Любая помощь будет принята с благодарностью.