cmbsdk-nativescript
Version:
CMB Scanner NativeScript plugin.
239 lines • 9.99 kB
JavaScript
import { CMBReaderConstants } from './cmbsdk-nativescript.common';
import { Observable, Application } from "@nativescript/core";
const androidSupport = global.androidx && global.androidx.appcompat ? global.androidx.core.app : android.support.v4.app;
export { CMBReaderConstants } from './cmbsdk-nativescript.common';
export class CMBReader extends Observable {
constructor() {
super();
this.readerDeviceBridgeListener = new com.cognex.cmbcrossplatform.interfaces.ReaderDeviceBridgeListener({
connectionStateChanged: (connectionState) => {
this.notify({ eventName: CMBReaderConstants.EVENTS.ConnectionStateChanged, object: this, data: connectionState });
},
readResultReceived: (resultAsJson) => {
let resultAsObject = JSON.parse(resultAsJson);
this.notify({
eventName: CMBReaderConstants.EVENTS.ReadResultReceived, object: this, data: {
results: resultAsObject.results,
subResults: resultAsObject.subResults,
xml: resultAsObject.xml
}
});
},
availabilityChanged: (availability) => {
this.notify({ eventName: CMBReaderConstants.EVENTS.AvailabilityChanged, object: this, data: availability });
},
scanningStateChanged: (state) => {
this.notify({ eventName: CMBReaderConstants.EVENTS.ScanningStateChanged, object: this, data: state });
}
});
this.permissionBridgeListener = new com.cognex.cmbcrossplatform.interfaces.PermissionBridgeListener({
requestPermission: (permissions, requestCode) => {
androidSupport.ActivityCompat.requestPermissions(this.getActivity(), permissions, requestCode);
}
});
this.ccpBridge = new com.cognex.cmbcrossplatform.CCPBridge(this.getActivity(), this.readerDeviceBridgeListener, this.permissionBridgeListener);
Application.android.on("activityRequestPermissions", (args) => {
if (args.requestCode == com.cognex.cmbcrossplatform.CCPBridge.CAMERA_REQUEST_PERMISSION_CODE) {
if (args.grantResults.length > 0 && args.grantResults[0] === android.content.pm.PackageManager.PERMISSION_GRANTED) {
this.ccpBridge.connect(null);
}
}
});
}
loadScanner(deviceType) {
return new Promise((resolve, reject) => {
this.ccpBridge.loadScanner(this.createResponseListener(resolve, reject), deviceType);
});
}
connect() {
return new Promise((resolve, reject) => {
this.ccpBridge.connect(this.createResponseListener(resolve, reject));
});
}
disconnect() {
return new Promise((resolve, reject) => {
this.ccpBridge.disconnect(this.createResponseListener(resolve, reject));
});
}
startScanning() {
return new Promise((resolve, reject) => {
this.ccpBridge.startScanning(this.createResponseListener(resolve, reject));
});
}
stopScanning() {
return new Promise((resolve, reject) => {
this.ccpBridge.stopScanning(this.createResponseListener(resolve, reject));
});
}
setSymbologyEnabled(symbology, enable) {
return new Promise((resolve, reject) => {
this.ccpBridge.setSymbologyEnabled(this.createResponseListener(resolve, reject), symbology, enable);
});
}
isSymbologyEnabled(symbology) {
return new Promise((resolve, reject) => {
this.ccpBridge.isSymbologyEnabled(this.createResponseListener(resolve, reject), symbology);
});
}
setCameraMode(cameraMode) {
this.ccpBridge.setCameraMode(cameraMode);
}
setPreviewOptions(previewOptions) {
this.ccpBridge.setPreviewOptions(previewOptions);
}
setPreviewOverlayMode(previewOverlayMode) {
this.ccpBridge.setPreviewOverlayMode(previewOverlayMode);
}
setPreviewContainerPositionAndSize(x, y, w, h) {
this.ccpBridge.setPreviewContainerPositionAndSize(x, y, w, h);
}
setPreviewContainerFullScreen() {
this.ccpBridge.setPreviewContainerFullScreen();
}
setStopScannerOnRotate(stop) {
this.ccpBridge.setStopScannerOnRotate(stop);
}
setLightsOn(on) {
return new Promise((resolve, reject) => {
this.ccpBridge.setLightsOn(this.createResponseListener(resolve, reject), on);
});
}
isLightsOn() {
return new Promise((resolve, reject) => {
this.ccpBridge.isLightsOn(this.createResponseListener(resolve, reject));
});
}
enableImage(enable) {
return new Promise((resolve, reject) => {
this.ccpBridge.enableImage(this.createResponseListener(resolve, reject), enable);
});
}
enableImageGraphics(enable) {
return new Promise((resolve, reject) => {
this.ccpBridge.enableImageGraphics(this.createResponseListener(resolve, reject), enable);
});
}
sendCommand(commandString) {
return new Promise((resolve, reject) => {
this.ccpBridge.sendCommand(this.createResponseListener(resolve, reject), commandString);
});
}
resetConfig() {
return new Promise((resolve, reject) => {
this.ccpBridge.resetConfig(this.createResponseListener(resolve, reject));
});
}
registerSDK(key) {
this.ccpBridge.registerSDK(key);
}
enableCameraFlag(codeMask, flag) {
return new Promise((resolve, reject) => {
this.ccpBridge.editCameraFlag(this.createResponseListener(resolve, reject), codeMask, flag, true);
});
}
disableCameraFlag(codeMask, flag) {
return new Promise((resolve, reject) => {
this.ccpBridge.editCameraFlag(this.createResponseListener(resolve, reject), codeMask, flag, false);
});
}
setCameraParam(codeMask, param, value) {
return new Promise((resolve, reject) => {
this.ccpBridge.setCameraParam(this.createResponseListener(resolve, reject), param, value, codeMask);
});
}
getAvailability() {
return new Promise((resolve, reject) => {
this.ccpBridge.getAvailability(this.createResponseListener(resolve, reject));
});
}
getConnectionState() {
return new Promise((resolve, reject) => {
this.ccpBridge.getConnectionState(this.createResponseListener(resolve, reject));
});
}
beep() {
return new Promise((resolve, reject) => {
this.ccpBridge.beep(this.createResponseListener(resolve, reject));
});
}
getDeviceBatteryLevel() {
return new Promise((resolve, reject) => {
this.ccpBridge.getDeviceBatteryLevel(this.createResponseListener(resolve, reject));
});
}
getSdkVersion() {
return com.cognex.cmbsdk.DataManSystem.getVersion();
}
setParser(parserType) {
return new Promise((resolve, reject) => {
this.ccpBridge.setParser(this.createResponseListener(resolve, reject), parserType);
});
}
setReadStringEncoding(readStringEncoding) {
return new Promise((resolve, reject) => {
this.ccpBridge.setReadStringEncoding(this.createResponseListener(resolve, reject), readStringEncoding);
});
}
setMDMReportingEnabled(enabled) {
console.log("setMDMReportingEnabled is not available on Android yet");
}
createMDMAuthCredentials(username, password, clientID, clientSecret) {
console.log("createMDMAuthCredentials is not available on Android yet");
}
setPreviewContainerBelowStatusBar(arg) {
console.log("setPreviewContainerBelowStatusBar is available only on iOS");
}
getCameraExposureCompensationRange() {
return new Promise((resolve, reject) => {
this.ccpBridge.getCameraExposureCompensationRange(this.createResponseListener(resolve, reject));
});
}
setCameraExposureCompensation(exposureCompensation) {
return new Promise((resolve, reject) => {
this.ccpBridge.setCameraExposureCompensation(this.createResponseListener(resolve, reject), exposureCompensation);
});
}
loadCameraConfig() {
return new Promise((resolve, reject) => {
this.ccpBridge.loadCameraConfig(this.createResponseListener(resolve, reject));
});
}
showToast(message) {
this.ccpBridge.showToast(message);
}
hideToast() {
this.ccpBridge.hideToast(true);
}
scanImageFromUri(uri) {
return new Promise((resolve, reject) => {
this.ccpBridge.scanImage(this.createResponseListener(resolve, reject), com.cognex.cmbcrossplatform.enums.ImageSourceType.URI, uri);
});
}
scanImageFromBase64(base64) {
return new Promise((resolve, reject) => {
this.ccpBridge.scanImage(this.createResponseListener(resolve, reject), com.cognex.cmbcrossplatform.enums.ImageSourceType.BASE64, base64);
});
}
setPairedBluetoothDevice(btDevice) {
this.ccpBridge.setPairedBTDeviceMacAddress(btDevice);
}
getPairedBluetoothDevice() {
return new Promise((resolve, reject) => {
reject("getPairedBluetoothDevice is available only on iOS");
});
}
createResponseListener(resolve, reject) {
return new com.cognex.cmbcrossplatform.interfaces.APIResponseListener({
successWithObject(result) {
resolve(result);
},
error(errorCode, errorMessage) {
reject(errorMessage);
}
});
}
getActivity() {
return Application.android.foregroundActivity || Application.android.startActivity;
}
}
//# sourceMappingURL=cmbsdk-nativescript.android.js.map