Ядро Nativescript Cameraplus с проблемой Ml-kit для фотографирования - PullRequest
0 голосов
/ 03 декабря 2018

Я использую оптическое распознавание текста в ядре NativeScript с плагином cameraplus и ml-kit из firebase.У меня есть этот код для представления:

<Page navigatingTo="onNavigatingTo" xmlns:Cam="@nstudio/nativescript-camera-plus">

    <StackLayout>

        <Cam:CameraPlus 
            id="camPlus"
            height="70%"
            width="70%"     
            showCaptureIcon="false"
            showGalleryIcon="false"
            showToggleIcon="false"       
            showFlashIcon="false"
            confirmPhotos="false" 
            debug="true">
        </Cam:CameraPlus>

    <Button text="test" tap="onCapture" />

    </StackLayout>

</Page>

и это для js:

const HomeViewModel = require("./home-view-model");
const firebase = require("nativescript-plugin-firebase");
const imageSourceModule = require("tns-core-modules/image-source");
const CameraPlus = require("@nstudio/nativescript-camera-plus");

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

exports.onCapture = function() {

    camera = page.getViewById("camPlus");
    camera.takePicture({ saveToGallery: false }) 
        .then(function (imageAsset) {

          const source = new imageSourceModule.ImageSource();
          source.fromAsset(imageAsset).
               then((imageSource) => {
               getTextFromPhoto(imageSource);
          });

          }).catch(function (err) {
               console.log("Error -> " + err.message);
          });

};

У меня ошибка:

Система.err: TypeError: Невозможно прочитать свойство 'then' из неопределенного

, когда я оставляю только метод:

camera.takePicture({ saveToGallery: false }) 

, это работает, поэтому должна быть проблема с js.Идея состоит в том, чтобы соединить эту фотографию с ml-kit (я должен использовать плагин cameraplus, потому что он должен быть интегрирован вместо запуска приложения камеры, как в плагине камеры (основной)

1 Ответ

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

Пожалуйста, внимательно ознакомьтесь с документацией , возвращаемое значение метода takePicture равно void, а не Promise.Вы должны прослушать компонент photoCapturedEvent on CameraPlus.

Обновление:

Если вы используете NativeScript Core, вам придется добавлять прослушиватель программно.Выполнение этого из XML может не работать.

...