最好的方法来探索插件的用法是检查我们的演示应用程序在这里。
下载到Demo App Root文件夹和运行演示应用程序后:
cd cmbSDK_Nativescript/demo tns运行android #或ios
简而言之,在你的项目中使用我们的插件的步骤如下:
从'cmbsdk-nativeScript'导入{cmbreader,cmbreaderconstants};
开放home-view-model.ts从演示应用程序检查此代码。我们的演示应用程序中的所有代码都有简短的描述。
this.cmb.startscanning()
重要的
使用cmbSDK原生脚本插件MX设备是免费的,但如果你想使用摄像头设备(用智能手机摄像头扫描),你需要从CMBDN..
他读者仍然在没有许可证的情况下工作,但结果是随机掩盖的*字符。
它是免费注册的,您可以获得一个30天的试用许可证密钥。
一旦获得了键,有两种方法可以在您的应用程序中使用。
这个.cmbreader.registersdk(“skd_key”);
要让扫描器启动并运行,首先要做的就是调用loadscanner()方法。它需要一个cmbreaderconstants.device_type param。此方法不连接到读取器设备。我们需要打电话connect ()在回调中实际连接到读者设备
this.cmb.loadScanner(CMBReaderConstants.DEVICE_TYPE.MXReader) .then(result => {this.cmb.connect() .then(result =>{…}) .catch(err => {console.log(err);});});
/ * @return(承诺){status:boolean,如果连接成功如果不是false err:string,如果status false err是null} * /
connect()方法的结果作为Promise返回,它将包含连接尝试的结果:
This.cmb.connect () .then(result =>{…}) .catch(err => {console.log(err);});
有一个事件监听器用于ReaderDevice的连接状态,即CMBReaderConstants.EVENTS.ConnectionStateChanged事件将在下面进行更详细的解释。
/* @return (promise) {status: boolean, if disconnect succeeded true if not false err: string, if status false err将不为null} */
正如有connect (),有一个断开()与之相反的方法connect ():
this.cmb.disconnect ();
类似于connect ()那断开()也引发了CMBReaderConstants.EVENTS.ConnectionStateChanged事件。
/* @return Scanner Activity的Promise (bool)值(如果命令成功则为true,否则为false) */
要启动/停止扫描过程,我们使用这些方法。它们返回一个承诺,如果命令成功(扫描已启动或停止)或否则拒绝
启动扫描仪并扫描条形码后,扫描结果触发CMBReaderConstants.EVENTS.ReadResultReceived事件。
一旦与Reader建立了连接,我们就可以通过调用setSymbologyEnabled ().它预计三个参数:CMBroderConstantants.Mbboly,它是要启用或禁用的符号系统以及用于开/关的布尔值。
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);});
/ * @return(promise){status:boolean,true如果成功执行命令err:string,如果status false Err不会为null} * /
如果我们想要启用闪光灯,我们可以使用setlightson().它期望一个布尔值参数并返回一个承诺。
/* @return (promise) {status: boolean,如果灯亮则为true,否则为false,如果出现错误(例如reader未初始化)}*/
我们可以用isLightsOn()检查灯的状态,它返回一个承诺。
/ ** @return一个用cmbreaderconstants.connection_state值解析当前读者设备的值* /
如果需要获取当前连接状态,getConnectionState ()可以使用
this.cmb.getConnectionState().then(function(connectionState){if (connectionState == CMBReaderConstants.CONNECTION_STATE.Connected) {// reader is connected}});
这应该只在使用设备内置的相机进行扫描时使用(CMBReaderConstants.DEVICE_TYPE.Camera)。
此函数预期一个整数参数,它是我们要启用的所有预览选项的或ED结果的结果。
this.cmb.setPreviewOptions(cmbreaderconstants.camera_preview_option.nozoombtn | cmbreaderconstants.camera_preview_option.noillumbtn);
注意:在我们打电话之前应该设置预览选项loadscanner()让它生效
这应该只在使用设备内置的相机进行扫描时使用(CMBReaderConstants.DEVICE_TYPE.Camera)。
this.cmb.setPreviewContainerPositionAndSize ([0, 0100, 50]);//将设置预览为0,0和100%宽50%高
这应该只在使用设备内置的相机进行扫描时使用(CMBReaderConstants.DEVICE_TYPE.Camera)。
设置相机预览以在全屏中启动而不是部分视图。
this.cmb.setPreviewContainerfulLScreen();
用于启用/禁用图像结果类型。期望一个布尔参数。
this.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,在错误的情况下(例如,reader未初始化)}*/
用于显示连接设备的电池电量的方法。没有任何论点。
仅适用于iOS系统。
用于创建用于MDM报告的身份验证凭据。它接受四个字符串参数:用户名、密码、clientID和clientSecret。
应在setMdmreportingEnabled之前调用。
有关MDM报告的更多信息可以找到在这里
this.cmb.createmdmauthcredentials(“用户名”,“密码”,“ClientID”,“CliencyCRET”);
仅适用于iOS系统。
拥有和运营多个康耐视移动终端的公司可能希望远程收集有关电池电量、电池运行状况、已安装固件等的最新信息。
使用cmbSDK框架的iOS应用可以将附加的移动终端状态信息上报给MDM实例。这可以通过setMDMReportingEnabled方法启用,该方法接受一个布尔参数。
有关MDM报告的更多信息可以找到在这里
this.cmb.setMDMReportingEnabled(真正的);
cmbSDK插件发出可以在应用程序中使用的事件。
首先,创建活动发射器:
进口NativeModules.NativeEventEmitter;const scannerListener = new NativeEventEmitter(cmb);
然后为你想要处理的每个事件添加监听器:
this.cmb.on (CMBReaderConstants.EVENTS。AvailabilityChanged, (args: any) => {data == cmbreaderconstants . availabilityavailable) {this. cmbread .connect();} else{对话框。alert({消息:"设备不可用",okButtonText: "OK"});} });
以下是cmbSDK插件可以发出的所有事件:
cmbreaderconstants.Event.ReadResultreCeived CMBreaderConstants.Event.AvailabilityChanged CMBreaderConstants.Event.ConnectionStateChanged CMBreaderConstant.Event.ScanningStateChanged