javascript - Nativescript core cameraplus 与 Ml-kit 拍照问题
问题描述
我正在使用带有 cameraplus 插件和来自 firebase 的 ml-kit 的 NativeScript 核心 OCR。我有这个视图代码:
<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);
});
};
我有一个错误:
System.err:TypeError:无法读取未定义的属性“then”
当我只保留方法时:
camera.takePicture({ saveToGallery: false })
它有效,所以必须有一个js问题。这个想法是将该照片与 ml-kit 连接(我必须使用 cameraplus 插件,因为它需要集成而不是像在相机(基本)插件中那样启动相机应用程序
解决方案
请仔细参考文档takePicture
,方法的返回值void
不是Promise
. 您必须收听photoCapturedEvent
onCameraPlus
组件。
更新:
如果您使用的是 NativeScript Core,则必须以编程方式添加侦听器。从 XML 执行此操作可能行不通。
推荐阅读
- c++ - 测试函数命令行的输出
- sql - 使用表变量/临时表的 SQL 查询 - 性能好
- opengl - 使用 MSVC 将目标文件移动到另一个目录
- wordpress - 按 ACF 关系过滤 WP 查询
- dpdk - 如何使用一个 NIC 设置循环转发以在 DPDK testpmd 中发送数据包并自行接收它们?
- flutter - Dialogflow 版本flutter失败
- python-3.x - 在 tkinter 中绘制图形
- vlookup - 根据分配表中的通配符分配类别值
- mongodb - 连接到 mongodb 时出现错误
- python-3.x - 如何访问具有特定格式的字典的所有键值