sapui5 - 在没有 Fiori 客户端的浏览器中使用 sap.ndc.BarcodeScanner
问题描述
我在我的应用程序中取消了 sap.ndc.BarcodeScanner。
在我看来,我有:
<Button icon="sap-icon://bar-code" press="scanBarcode"/>
<Label id="label" text="Null"/>
扫描条码看起来像这样:
scanBarcode: function(oEvent) {
sap.ndc.BarcodeScanner.scan(
var that = this;
function (mResult) {
if (!mResult.cancelled) {
var code = mResult.text;
that.byId("label").setText(code);
}
},
function (Error) {
if (Error !== undefined) {
MessageBox.error(Error.message);
}
}
);
}
我的问题是我不想使用 Fiori 客户端访问应用程序。
因此,应该可以使用设备的摄像头在浏览器中使用条形码扫描仪。
有可能这样做吗?
谢谢您的帮助!
解决方案
不可以。无法在浏览器中使用条形码扫描仪。
sap.ndc.BarcodeScanner 在命名空间 sap.ndc 下声明。这里的“ndc”代表本机设备功能。这些 API 将使用 cordova 插件来调用本机设备功能,例如相机。sap.ndc.BarcodeScanner 将检查 cordova 插件的可用性。如果应用程序是通过浏览器打开的,则 BarcodeScanner 将简单地打开一个对话框并要求最终用户手动输入条形码。如果应用程序是通过 cordova 应用程序或 SAP Fiori Client(构建在 cordova 之上)打开的,那么它将调用设备摄像头。
推荐阅读
- qt - QMessageBox 相对于主窗口居中
- java - 如何获取特定的 lambda 度量统计信息,例如使用 java 的 iteratorAge
- python-3.x - 模型不在 django admin 中注册
- javascript - 使用 jspdf 从 html 转换为 pdf 后,HTML 元素左对齐
- next.js - Next.js:没有 SSR 的 getserversideprops
- elasticsearch - Elasticsearch 不会根据提供的时间戳映射“yyyy-MM-dd hh:mm:ss”过滤带有时间戳的文档
- c++ - 是否有一种编译时方法来断言基类是“第一个”并且与 C++ 中的子类的偏移量为 0
- php - RPI 在本地机器上通过 php 启动 VLC
- bash - Bash getopt 不接受某些双破折号 (--) 字符
- c++ - 有多少像素值的差异可以忽略不计?