通过npm下载插件
美元npm安装cmbsdk-react-native——保存
主要是自动安装
美元react-native链接cmbsdk-react-native
进口react-native应用程序中的组件通过添加
从“cmbsdk-react-native”进口{CMBReader, cmb};
您可以访问所有的API方法通过招商银行常数,和所有的枚举和常量CMBReader类中是可用的。
在继续之前,请下载cmbSDK React-Native zip文件下载部分,看看API参考。
下载页面:https://cmbdn.cognex.com/download
API参考:https://cmbdn.cognex.com/knowledge/react-nat/rct-api-metho
确保您已经下载了cmbSDK React-Native zip归档文件从下载页面。从下载的zip文件,打开iOS目录。
1。如果您使用的是移动设备的内置相机,与“MWBScannerImages做同样的事情。xcassets“文件位于iOS /资源目录。必威随行版官网
2。在你的项目信息。plist文件您需要添加一个关键取决于readerDevice类型使用。
就是这样。你应该能够运行您的应用程序与cmbSDK react-native模块工作。
打开应用程序构建。它坐落在yourRNApp / android应用程序并添加这些线:
——以上的依赖关系添加:
存储库{flatDir {dirs“. . / . ./ node_modules / cmbsdk-react-native / android / cmbsdk-android-binary / cmbsdklib-release /”、“. . / . ./ node_modules / cmbsdk-react-native / android / cmbsdk-crossplatform-android-binary / '}}
就是这样。你应该能够运行您的应用程序与cmbSDK react-native模块工作。
如果你是一个旧版本的更新cmbSDK React-Native模块1.2.260或更新,您将需要做以下更改:
——以上依赖性,取代先前添加的存储库:
存储库{flatDir {dirs“. . / . ./ node_modules / cmbsdk-react-native / android / cmbsdk-android-binary / cmbsdklib-release /”、“. . / . ./ node_modules / cmbsdk-react-native / android / cmbsdk-crossplatform-android-binary / '}}
就是这样。你应该能够运行您的应用程序与cmbSDK react-native模块工作。
扫描仪启动并运行,首先要做的是调用loadScanner ()方法。预计CMBReader。DEVICE_TYPE参数。这种方法不连接到读者的设备。我们需要打电话connect ()在回调实际设备连接到读者
cmb.loadScanner (CMBReader.DEVICE_TYPE.MXReader)((响应)= > {cmb.getAvailability(),然后((响应)= >{如果(响应= = CMBReader.AVAILABILITY.Available) {connectReader ();}}).catch((拒绝者)= > {})});
/ * @return(承诺){状态:布尔,如果连接成功真如果不是假犯错:字符串,如果状态假错不会空}* /
connect()方法返回的结果作为一个承诺,它将包含连接请求的结果:
cmb.connect () ((connectMethodResult) = >{/ /做某事之后已经建立了一个连接configureReader ();}).catch((失败)= >{控制台。日志(“招商银行- connectReader失败:“+ JSON.stringify(失败))});
有一个事件监听器的连接状态ReaderDevice,即CMBReader.EVENT.ConnectionStateChanged下面更详细地解释了事件。
/ * @return(承诺){状况:布尔,如果断开成功真的如果不是假犯错:字符串,如果状态假错不会空}* /
就像connect (),有一个断开()方法的反面connect ():
cmb.disconnect ();
类似于connect (),断开()也引发了CMBReader.EVENT.ConnectionStateChanged事件。
/ * @return承诺(bool)扫描仪的价值活动(否则真如果命令成功,假例:如果readerDevice没有初始化)* /
启动/停止扫描过程,我们使用这些方法。他们返回一个承诺,如果命令成功解决(扫描启动或停止)或拒绝否则(如果没有活动ReaderDevice初始化或没有连接)。
后启动扫描仪扫描条形码,扫描结果触发CMBReader.EVENT.ReadResultReceived事件。
一旦有一个连接到读者,我们可以启用象征学通过调用setSymbologyEnabled ()。预计三个参数:一个CMBReader。象征的符号是启用或禁用,开/关一个布尔值,和一个字符串commandID处理命令的结果。
cmb.setSymbology (CMBReader.SYMBOLOGY。QR,真的,CMBReader.SYMBOLOGY_NAME.QR);
这种方法触发CMBReader.EVENT.CommandCompleted事件的结果包含了commandID从第三个参数字符串,所以,你知道哪个命令成功和失败的事件的结果。
检查如果我们启用了一个象征,我们使用isSymbologyEnabled ()。它需要两个参数:CMBReader。象征我们检查的方法,还有一个commandID字符串用于识别响应。结果触发CMBReader.EVENT.CommandCompleted事件,它包含commandID从第二个参数字符串,所以,你知道哪个命令成功和失败的事件的结果。
cmb.isSymbologyEnabled (CMBReader.SYMBOLOGY。QR CMBReader.SYMBOLOGY_NAME.QR);
/ * @return(承诺){状况:布尔,如果成功执行命令犯错:字符串,如果状态假错不会空}* /
如果我们想使我们可以使用flashsetLightsOn ()。预计一个参数布尔,并返回一个承诺。
/ * @return(承诺){状况:布尔,如果灯火通明,假否则犯错:字符串,在出错的情况下(如读者没有初始化)}* /
我们可以用isLightsOn检查灯状态(),它返回一个承诺。
/ * * @return CMBReader承诺解决。CONNECTION_STATE当前读者的价值设备* /
如果您需要获取当前的连接状态,getConnectionState ()可以使用
cmb.getConnectionState(),然后(函数(connectionState){如果(connectionState = = CMBReader.CONNECTION_STATE.Connected){/ /读者连接}});
这应该是只有当使用设备的内置相机扫描(CMBReader.DEVICE_TYPE.Camera)。
设置相机将如何表现当我们使用照相机设备条形码阅读器,我们使用setCameraMode ()。需要一个CMBReader。CAMERA_MODE论点。
cmb.setCameraMode (CMBReader.CAMERA_MODE) / * *使用相机没有瞄准手。预览,照明是可用的。CMBReader.CAMERA_MODE。NoAimer = 0,使用相机基本瞄准手(例如,黄貂鱼)。预览,照明是不可用的。CMBReader.CAMERA_MODE。PassiveAimer = 1,使用相机积极瞄准手(例如,mx - 100)。预览,照明是可用的。CMBReader.CAMERA_MODE。ActiveAimer = 2,使用移动设备前置摄像头。 Preview is on, illumination is not available. CMBReader.CAMERA_MODE.FrontCamera = 3 */
注意:CameraMode应设置在我们的电话loadScanner ()对它生效。
这应该是只有当使用设备的内置相机扫描(CMBReader.DEVICE_TYPE.Camera)。
这个函数期望一个整数参数的结果或者艾德所有预览选项的结果,我们希望启用。
cmb.setPreviewOptions (CMBReader.CAMERA_PREVIEW_OPTION。NoZoomBtn | CMBReader.CAMERA_PREVIEW_OPTION.NoIllumBtn);
注意:PreviewOptions应设置在我们的电话loadScanner ()对它生效。
这应该是只有当使用设备的内置相机扫描(CMBReader.DEVICE_TYPE.Camera)。
cmb.setPreviewContainerPositionAndSize ([0, 0100, 50]);/ /将预览为0,0和100%宽度高度的50%
这应该是只有当使用设备的内置相机扫描(CMBReader.DEVICE_TYPE.Camera)。
设置相机预览开始在全屏幕而不是局部视图。
cmb.setPreviewContainerFullScreen ();
这应该是只有当使用设备的内置相机扫描(CMBReader.DEVICE_TYPE.Camera)。
只有在iOS。
设置相机预览部分视图顶部轴开始下面的状态栏匹配机器人的行为。预计一个布尔参数。
cmb.setPreviewContainerBelowStatusBar(真正的);cmb.setPreviewContainerPositionAndSize ([0, 0100, 50]);/ /将预览为0,0和100%宽度高度的50%。/ / iOS的局部视图所示状态栏。
cmb.setPreviewContainerBelowStatusBar(假);cmb.setPreviewContainerPositionAndSize ([0, 0100, 50]);/ /将预览为0,0和100%宽度高度的50%。/ / iOS局部视图将从屏幕的顶端开始,并将重叠状态栏。
用于启用/禁用图像结果类型。预计一个布尔参数。
cmb.enableImage(真正的);
用于启用/禁用svg结果类型。预计一个布尔参数。
cmb.enableImageGraphics(真正的);
启用或禁用解析为扫描条形码。预计CMBReader.RESULT_PARSER类型的一个参数。
cmb.setParser (CMBReader.RESULT_PARSER.GS1);
设置编码readString结果类型。预计CMBReader.READSTRING_ENCODING类型的一个参数。
cmb.setReadStringEncoding (CMBReader.READSTRING_ENCODING.UTF_8);
/ * @return(承诺){状况:布尔,如果复位成功,否则假犯错:字符串,在出错的情况下(如读者没有初始化)}* /
我们可以使用重置配置选项resetConfig。
cmb.resetConfig(函数(结果){console.log(结果);})
/ * @return(承诺){值:int犯错:字符串,在出错的情况下(如读者没有初始化)}* /
方法来显示电池的连接设备。不需要任何参数。
只有在iOS。
用于创建身份验证凭证用于MDM报告。它需要4个字符串参数:用户名、密码,clientID clientSecret。
应该叫setMDMReportingEnabled之前。
可以找到更多关于MDM报告在这里
招商银行。createMDMAuthCredentials(“用户名”、“密码”、“clientID”、“clientSecret”);
只有在iOS。
公司拥有和经营许多Cognex移动终端远程可能想收集最新的信息关于电池水平,电池健康、安装固件等等。
一个使用cmbSDK iOS应用程序框架可以报告的附加移动终端状态信息MDM实例。这可以启用setMDMReportingEnabled方法,该方法接受一个布尔参数。
可以找到更多关于MDM报告在这里
cmb.setMDMReportingEnabled(真正的);
本机cmbSDK反应模块发出的事件可用于js应用程序。
这些应该添加componentDidMount功能,在componentWillUnmount删除反应组件生命周期)。
首先,创建事件发射器:
进口NativeModules.NativeEventEmitter;const scannerListener = new NativeEventEmitter(招商银行);
然后为每个事件你想添加监听器处理:
scannerListener。addListener (CMBReader.EVENT。ReadResultReceived,(结果)= >{如果结果。goodRead = = true){警报。alert(结果。symbologyString,结果。readString);}});
以下是所有cmbSDK模块可以发出的事件:
CMBReader.EVENT.ReadResultReceivedCMBReader.EVENT.AvailabilityChangedCMBReader.EVENT.ConnectionStateChangedCMBReader.EVENT.ScanningStateChangedCMBReader.EVENT.CommandCompleted
commandID(字符串,相同的参数用于发送命令)eventType(字符串,例:isSymbologyEnabled)命令(字符串,发送的命令)成功(布尔)状态(可空,int,命令状态(见CDMResponse.h))消息(可以为空字符串,命令有效负载)图像(可空,base64字符串表示的扫描图像)响应(可空、布尔、命令响应,例:isSymbologyEnabled将返回true / false)