Ядро NativeScript CameraPlus с MLKit не работает, если saveToGallery имеет значение false - PullRequest
0 голосов
/ 04 декабря 2018

Ядро NativeScript CameraPlus с MLKit не работает, если saveToGallery имеет значение false.Есть ли какой-либо способ сделать это без сохранения фотографии в галерее?Он работает с базовым плагином камеры.

Вот мой код:

const HomeViewModel = require("./home-view-model");
const firebase = require("nativescript-plugin-firebase");

exports.onNavigatingTo = function (args) {
    page = args.object;
    mv = page.bindingContext = new HomeViewModel();

    page.getViewById("camPlus")
        .addEventListener("photoCapturedEvent", photoCapturedEvent);
};


exports.onCapture = function() {
    camera = page.getViewById("camPlus");
    //Must be false
    camera.takePicture({ saveToGallery: false});
};

function photoCapturedEvent(args) {
    const source = new imageSourceModule.ImageSource();
    source.fromAsset(args.data).then((imageSource) => {
            getTextFromPhoto(imageSource);
        }).catch(function (err) {
            console.log("Error -> " + err.message);
        });
}

function getTextFromPhoto(imageSource) {

    firebase.mlkit.textrecognition.recognizeTextOnDevice({
        image: imageSource
    }).then(function (result) {

        mv.idContainer = getDataFromCameraText(result.text);
        if (mv.idContainer == "") {
            getTextFromPhotoOnline(imageSource);
        } else {
            containerDataIsValid(true);
        }

    }).catch(function (errorMessage) {
        return console.log("ML Kit error: " + errorMessage);
    });
}

Метод "photoCapturedEvent" выдает ошибку undefined:

JS:Ошибка -> undefined

JS: Не удается найти актив '/storage/emulated/0/Android/data/org.nativescript.gScanContainer/files/IMG_1543942676583.jpg'.

как я могу получить изображение без сохранения?

1 Ответ

0 голосов
/ 04 декабря 2018

Я проверил исходный код плагина и, похоже, это ошибка.Как говорится в сообщении об ошибке, они никогда не сохраняют данные изображения по пути, который они передают в событие, захваченное фотографией.

Таким образом, единственным вариантом для вас будет всегда включать saveToGallery и удалять файл, как только вы закончите с getTextFromPhoto.

...