重要的
使用cmbSDK原生脚本插件MX设备是免费的,但如果你想使用摄像头设备(用智能手机摄像头扫描),你需要从CMBDN.
他阅读器仍然工作无证,但结果是随机带*字符屏蔽。
它是免费注册的,您可以获得一个30天的试用许可证密钥。
获得密钥后,有两种方法可用于应用程序。
this.cmbReader.registerSDK( “SKD_KEY”);
要让扫描器启动并运行,首先要做的就是调用loadScanner()方法。它需要一个CMBReaderConstants.DEVICE_TYPE PARAM。此方法不会连接到读取器装置。我们需要调用连接()在回调到实际连接到读取器装置
this.cmb.loadScanner(CMBReaderConstants.DEVICE_TYPE.MXReader) .then(result => {this.cmb.connect() .then(result =>{…}) .catch(err => {console.log(err);});});
/ * @返回(承诺){状态:布尔,如果不是假的故障如果连接成功真:字符串,如果状态虚假ERR将不能为null} * /
connect()方法的结果作为承诺返回,它将包含连接尝试的结果:
This.cmb.connect () .then(result =>{…}) .catch(err => {console.log(err);});
ReaderDevice的连接状态有一个事件侦听器,即CMBReaderConstants.EVENTS.ConnectionStateChanged事件,下面将对其进行更详细的解释。
/*@return(promise){status:boolean,if disconnect successed true if not false err:string,if status false err not null}*/
正如有连接(),有一个断开()方法,做的相对连接():
这个.cmb.disconnect();
类似于连接()那断开()也会触发CMBReaderConstants.EVENTS.ConnectionStateChanged事件。
/*扫描程序活动的@return Promise(bool)值(如果命令成功,则为true,否则为false,例如:如果readerDevice未初始化)*/
为了启动/停止扫描过程,我们使用以下方法。它们返回一个承诺,如果命令成功(扫描已开始或停止)或被拒绝(如果没有激活的ReaderDevice初始化或未连接),则将解决该承诺。
启动扫描仪和扫描条形码后,扫描结果触发CMBReaderConstants.EVENTS.ReadResultReceived事件。
一旦与阅读器建立了连接,我们就可以通过调用setSymbologyEnabled ().它需要三个PARAMS:一个CMBReaderConstants.SYMBOLOGY要被启用的符号或禁用和用于开/关一个布尔值。
this.cmb.setSymbologyEnabled (CMBReaderConstants.SYMBOLOGY。function (result) {if (result == true) console.log("启用了DataMatrix ");else console.log("DataMatrix NOT enabled");}) .catch(function (err) {console.log(err);});
要检查是否启用了符号,我们使用isSymbologyEnabled().它的参数是CMBReaderConstants.SYMBOLOGY。
cmb.isSymbologyEnabled (CMBReaderConstants.SYMBOLOGY.QR)。then(function (result) {if (result == true) console.log("启用了DataMatrix ");else console.log("DataMatrix NOT enabled");}) .catch(function (err) {console.log(err);});
/ * @返回(承诺){状态:布尔,真要是成功执行命令错误:字符串,如果状态虚假ERR将不能为null} * /
如果我们想使闪光灯,我们可以使用setlightson().它期望一个布尔值参数并返回一个承诺。
/* @return (promise) {status: boolean,如果灯亮则为true,否则为false,如果出现错误(例如reader未初始化)}*/
我们可以用isLightsOn()检查灯的状态,它返回一个承诺。
/ ** @返回甲诺与当前读取器设备的CMBReaderConstants.CONNECTION_STATE值中来解决* /
如果需要获取当前连接状态,getConnectionState ()可以使用
this.cmb.getConnectionState().then(function(connectionState){if (connectionState == CMBReaderConstants.CONNECTION_STATE.Connected) {// reader is connected}});
这应该只在使用设备内置的相机进行扫描时使用(CMBReaderConstants.DEVICE_TYPE.Camera)。
该功能预计一个整数参数是所有的预览选项,我们希望使OR-ED结果的结果。
this.cmb.setPreviewOptions(CMBReaderConstants.CAMERA_PREVIEW_OPTION.NoZoomBtn | CMBReaderConstants.CAMERA_PREVIEW_OPTION.NoIllumBtn);
注:PreviewOptions应设置之前,我们称之为loadScanner()让它生效
这应该只在使用设备内置的相机进行扫描时使用(CMBReaderConstants.DEVICE_TYPE.Camera)。
this.cmb.setPreviewContainerPositionAndSize ([0, 0100, 50]);//将设置预览为0,0和100%宽50%高
这应该只在使用设备内置的相机进行扫描时使用(CMBReaderConstants.DEVICE_TYPE.Camera)。
设置相机预览全屏幕,而不是局部视图启动。
this.cmb.setPreviewContainerFullScreen();
用于启用/禁用图像结果类型。期望一个布尔参数。
此.cmb.enableImage(真);
用于启用/禁用svg结果类型。期望一个布尔参数。
this.cmb.enableImageGraphics(真正的);
启用或扫描条形码禁止解析。预计类型CMBReaderConstants.RESULT_PARSER的一个参数。
this.cmb.setParser(CMBReaderConstants.RESULT_PARSER.GS1);
设置readString结果类型的编码。需要一个CMBReaderConstants.READSTRING_ENCODING类型的参数。
this.cmb.setReadStringEncoding(CMBReaderConstants.READSTRING_ENCODING.UTF_8);
/*@return(promise){value:int err:string,如果出现错误(例如读卡器未初始化)}*/
方法,显示所连接设备的电池电平。不带任何参数。
仅适用于iOS系统。
用于创建用于MDM报告的身份验证凭据。它接受四个字符串参数:用户名、密码、clientID和clientSecret。
前setMDMReportingEnabled应该叫。
有关MDM报告的更多信息可以找到在这里
this.cmb.createMDMAuthCredentials( “用户名”, “口令”, “clientID的”, “clientSecret”);
仅适用于iOS系统。
拥有和运营多个康耐视移动终端的公司可能希望远程收集有关电池电量、电池运行状况、已安装固件等的最新信息。
使用cmbSDK框架的iOS应用可以将附加的移动终端状态信息上报给MDM实例。这可以通过setMDMReportingEnabled方法启用,该方法接受一个布尔参数。
有关MDM报告的更多信息可以找到在这里
this.cmb.setMDMReportingEnabled(true);
/* @return (promise) {range: JSON对象,包含以下属性:"lower":相机曝光最小值"upper":相机曝光最大值"step":相机曝光步长值err: string, in case of error (e.g. reader not initialized)} */
cmb.getCameraExposureCompensationRange(),然后(函数(范围){的console.log(范围);})。.catch(函数(ERR){的console.log(ERR);});
注:相机需要在cmbSDK内至少启动一次才能获得相机曝光补偿范围,否则将返回空json。
设置相机曝光补偿值。发送将设置为曝光补偿的浮点值。
setCameraExposureCompensation(5).catch(函数(err){console.log(err);});
注:这需要在成功连接到读卡器设备后调用。若发送的值大于相机曝光最大值,则设置最大值;若发送的值小于相机曝光最小值,则设置最小值。
cmbSDK插件发出可以在应用程序中使用的事件。
首先,创建事件发射器:
进口NativeModules.NativeEventEmitter;const scannerListener = new NativeEventEmitter(cmb);
然后为你想要处理的每个事件添加监听器:
this.cmb.on(CMBReaderConstants.EVENTS.AVAILABILITY已更改,(args:any)=>{if(args.data==CMBReaderConstants.AVAILABILITY.AVAILABILITY){this.cmb.connect();}else{dialogs.alert({消息:“设备不可用”,okButtonText:“确定”});});
以下是cmbSDK插件可以发出的所有事件:
CMBReaderConstants.EVENT.ReadResultReceived CMBReaderConstants.EVENT.AvailabilityChanged CMBReaderConstants.EVENT.ConnectionStateChanged CMBReaderConstants.EVENT.ScanningStateChanged