重要的
使用MX设备的CMBSDK NativeScript插件的使用是免费的,但如果要利用相机设备(使用智能手机相机扫描),则需要获取许可证CMBDN.
阅读器仍然在没有许可证的情况下工作,但结果被*字符随机屏蔽。
它是免费注册的,您可以获得一个30天的试用许可证密钥。
一旦获得了密钥,有两种方法可以在您的应用程序中使用。
此.cmbdreader.registerSDK(“SKD_键”);
要获得扫描仪并运行,首先要做,就是打电话给loadScanner()方法。它需要一个CMBReaderConstants.DEVICE_TYPE参数。此方法未连接到读卡器设备。我们需要打电话连接()在回调中实际连接到读卡器设备
this.cmb.loadScanner(CMBReaderConstants.DEVICE_TYPE.MXReader) .then(result => {this.cmb.connect() .then(result =>{…}) .catch(err => {console.log(err);});});
/*@return(promise){status:boolean,if connection successed true if not false err:string,if status false err not null}*/
Connect()方法的结果作为承诺返回,它将包含连接尝试的结果:
this.cmb.connect().then(结果=> {...}).catch(err => {console.log(错误);});
有一个事件侦听器,用于readerDevice的连接状态,即cmbreaderconstants.Events.ConnectionStateChanged.事件如下更详细地解释。
/ * @return(承诺){status:boolean,如果disconnect成功了,如果不是false err:string,如果status false err是null} * /
正如有连接(),有一个断开()方法,该方法与连接():
this.cmb.disconnect();
同样到连接(),断开()也触发了这一点cmbreaderconstants.Events.ConnectionStateChanged.事件。
/ * @return承诺(bool)扫描仪活动的值(如果命令成功,则为true,否则为false:如果阅读器没有初始化)* /
要启动/停止扫描过程,我们使用这些方法。他们返回一个承诺,如果命令成功(扫描已经开始或停止)或否则拒绝(如果没有初始化或未连接的活动ReaderDevice),则会解决这一承诺。
启动扫描仪并扫描条形码后,扫描结果将触发cmbreaderconstants.Events.ReadResultreceived事件。
一旦与读者连接,我们就可以通过调用来启用符号SetyymbologyEnabled(). 它需要三个参数:一个CMBReaderConstants.SYMBOLOGY,它是要启用或禁用的符号,一个布尔值,用于打开/关闭。
this.cmb.setsymbologyenabled(cmbreaderconstants.symbology.datamatrix,true).then(函数(结果){if(结果== true)console.log(启用“dataMatrix”); else console.log(“dataMatrix未启用”);}).catch(函数(err){console.log(错误);});
要检查是否启用了符号,我们使用IssymbologyEnabled().它需要参数cmbreaderconstants.symbology。
cmb.issymbologyenabled(cmbreaderconstants.symbology.qr)。然后(函数(结果){if(结果== true)console.log(启用“dataMatrix”); else console.log(“dataMatrix未启用”);})。catch(函数(err){console.log(错误);});
/*@return(promise){status:boolean,如果成功执行则为true命令err:string,如果status为false,则err不会为null}*/
如果我们想启用flash,我们可以使用setLightsOn().它期望一个布尔值参数并返回一个承诺。
/ * @return(承诺){status:boolean,如果灯亮则为true,否则错误:字符串,在错误(例如reader未初始化)} * /
我们可以用isLightsOn()检查灯的状态,它返回一个承诺。
/**@返回与当前读卡器设备的CMBReaderConstants.CONNECTION\u状态值解析的承诺*/
如果您需要获取当前的连接状态,getConnectionState ()可以使用
this.cmb.getConnectionState()。然后(函数(connectionstate){if(connectionstate == cmbreaderconstants.connection_state.connected){// reader已连接}});
这应该只在使用设备内置的相机进行扫描时使用(CMBReaderConstants.DEVICE_TYPE.Camera)。
此函数需要一个整型参数,该整型参数是我们希望启用的所有预览选项的OR ed结果。
此.cmb.setPreviewOptions(CMBReaderConstants.CAMERA_PREVIEW_OPTION.NoZoomBtn | CMBReaderConstants.CAMERA_PREVIEW_OPTION.NoIllumBtn);
注意:在调用之前,应设置预览选项loadScanner()让它生效
这应该只在使用设备内置的相机进行扫描时使用(CMBReaderConstants.DEVICE_TYPE.Camera)。
this.cmb.setPreviewContainerPositionAndsize([0,0,100,50]);//将预览设置为0,0和100%宽度50%高度
这应该只在使用设备内置的相机进行扫描时使用(CMBReaderConstants.DEVICE_TYPE.Camera)。
将摄影机预览设置为在全屏而不是局部视图中开始。
this.cmb.setPreviewContainerFullScreen();
用于启用/禁用图像结果类型。期待一个布尔的论点。
this.cmb.enableimage(true);
用于启用/禁用svg结果类型。期待一个布尔的论点。
this.cmb.EnableImageGraphics(真实);
启用或禁用扫描条形码的解析。需要一个CMBReaderConstants.RESULT\u PARSER类型的参数。
this.cmb.setParser(CMBReaderConstants.RESULT\u PARSER.GS1);
设置读取结果类型的编码。期待CMBreaderConstants.readString_Encoding类型的一个参数。
this.cmb.setReadStringEncoding(CMBReaderConstants.ReadStringEncoding.UTF_8);
/ * @return(承诺){value:int err:string,在错误的情况下(例如读者未初始化)} * /
方法显示所连接设备的电池电量。不接受任何论据。
仅适用于iOS。
用于创建用于MDM报告的身份验证凭据。它需要四个字符串参数:用户名,密码,clientId和clientsecret。
应在setMDMReportingEnabled之前调用。
可以找到更多关于MDM报告在这里
this.cmb.createMDMAuthCredentials(“用户名”、“密码”、“clientID”、“clientSecret”);
仅适用于iOS。
拥有和操作许多可康生移动终端可能希望远程收集有关电池电量,电池运行状况,安装固件等的最新信息。
使用CMBSDK框架的IOS应用程序可以将附加的移动终端的状态信息报告给MDM实例。可以使用leasemdmreporting的方法启用,该方法接受一个布尔参数。
可以找到更多关于MDM报告在这里
this.cmb.setmdmreportingEnabled(true);
cmbSDK插件发出可以在应用程序中使用的事件。
首先,创建事件发射器:
进口NativeModules.NativeEventEmitter;const scannerListener = new NativeEventEmitter(cmb);
然后为你想要处理的每个事件添加监听器:
this.cmb.on(cmbreaderconstants.events.availabilityChanged,(args:any)=> {if(args.data == cmbreaderconstants.availability.available){this.cmb.connect();} else {dialigs.alert({消息:“设备变得不可用”,OKBUTTONTEXT:“OK”});}});
以下是CMBSDK插件可以发出的所有事件:
CMBReaderConstants.EVENT.ReadResultReceived CMBReaderConstants.EVENT.Availability更改的CMBReaderConstants.EVENT.ConnectionStateChanged CMBReaderConstants.EVENT.ScanningStateChanged