sap.ndc.BarcodeScanner无法获取平板的相机

2020-08-16 10:30发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试使用标准sap库" sap.ndc.BarcodeScanner"来实现条形码扫描器。

但是我无法获取相机并对其进行扫描。 而是仅显示输入字段。

有人可以帮我吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试使用标准sap库" sap.ndc.BarcodeScanner"来实现条形码扫描器。

但是我无法获取相机并对其进行扫描。 而是仅显示输入字段。

有人可以帮我吗?

付费偷看设置
发送
4条回答
闻人可可
1楼-- · 2020-08-16 10:54

嗨,

您能够解决此问题吗? 我有同样的问题。

谢谢,马科斯。

Violet凡
2楼-- · 2020-08-16 10:55

嗨,爱德华,

请提供无效的代码。

spaceman01
3楼-- · 2020-08-16 10:54

嗨,

sap.ndc.BarcodeScanner在名称空间sap.ndc下声明。 此处的" ndc"代表本地设备功能。 这些API将使用cordova插件来调用本机设备功能,例如Camera。 sap.ndc.BarcodeScanner将检查cordova插件的可用性。 如果通过浏览器打开了该应用程序,则BarcodeScanner会简单地打开一个对话框,并要求最终用户手动输入条形码。 如果通过Cordova应用程序或SAP Fiori Client(在Cordova之上构建)打开该应用程序,则它将调用设备摄像头。

空代码
4楼-- · 2020-08-16 11:02

Hi Kedar,

感谢您的回复!

我的代码:

onscan.txt

view.xml中的扫描按钮和controller.js中的onScan功能

 <按钮类型="接受" text =" {i18n> scan}" press =" onScan" icon =" sap-icon://条形码" id =" scanBtn" enabled =" true"/>

 onScan:function(){
 标志=假;
 var that = this;
 var oData = this.getView()。getModel('data');
 var oI18n = this.getView()。getModel(" i18n")。getResourceBundle();
//if(sap.ui.Device.os.android){
 jQuery.sap.require(" sap.ndc.BarcodeScanner");
 sap.ndc.BarcodeScanner.scan(
 函数(sResult){
 如果(sResult.cancelled == false){
 var result = sResult.text.split(',');
 如果(result.length!= 6){
 that.onScanError();
 that.fShowMessageBox('error',oI18n.getText(" codeError")+ sResult.text);
 返回;
 }
 oData.setProperty("/img/materialNumber",result [0]);
 oData.setProperty("/img/quantity",result [2]);
 oData.setProperty("/img/batch",result [5]);
//设置过滤器数组
 var aFilter = [];
//设置物料编号过滤器
 aFilter [0] = new sap.ui.model.Filter({
 路径:" materialNumber",
 运算子:sap.ui.model.FilterOperator.EQ,
 值1:oData.getProperty("/img/materialNumber"),
 值2:""
 });
//设置登录语言
 aFilter [1] = new sap.ui.model.Filter({
 路径:"语言",
 运算子:sap.ui.model.FilterOperator.EQ,
 值1:oData.getProperty("/img/language"),
 值2:""
 });
//设置工厂
 aFilter [2] = new sap.ui.model.Filter({
 路径:"植物",
 运算子:sap.ui.model.FilterOperator.EQ,
 值1:defaultData.plant,
 值2:""
 });
//获取材料描述和单位
 oModel.read("/img/EntitySets/",{
 过滤器:aFilter,
 成功:功能(oERP,oResponse){
//检查结果:成功
 如果(oERP.results [0] .msgty =='S'){
//设置模型
 oData.setProperty("/img/materialDesc",oERP.results [0] .materialDesc);
 oData.setProperty("/img/unit",oERP.results [0] .unit);
 标志= true;
 that.getView()。byId('quantityid')。focus();
 如果(oERP.results [0] .batchFlag =='X'){
 that.getView()。byId('batchid')。setEnabled(true);
 }否则,如果(oERP.results [0] .batchFlag ==''){
 that.getView()。byId('batchid')。setEnabled(false);
 that.getView()。byId('batchid')。setValue("");
 that.getView()。byId('batchlabelid')。setRequired(false);
 }
//检查结果:错误
 }其他{
//错误信息输出
 that.onScanError();
 that.fShowMessageBox('error',oERP.results [0] .msg);
 }
 },
 错误:function(oError){
//错误信息输出
 that.onScanError();
 that.fShowMessageBox('error',oError.message);
 }
 });
 }其他{
 that.onScanError();
 that.fShowMessageBox('error',oI18n.getText(" scanCancel"));;
 }
 },
 函数(错误){
 that.onScanError();
 that.fShowMessageBox('错误',错误);
 返回;
 },
 函数(mParams){
 alert("输入的值:" + mParams.newValue);
 }
 );
 }其他{
 that.onScanError();
 that.fShowMessageBox('error',oI18n.getText(" scanError"));
 }
 }
 

一周热门 更多>