红光扫码插件
This commit is contained in:
23
README.md
Normal file
23
README.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# PDA 红光扫码插件
|
||||
青春塔项目PDA(AUTOID UTouch X3)设备监听红光扫码插件
|
||||
|
||||
使用DEMO:`https://m.shuto.cn:8681/center/uhf-demo.git`
|
||||
|
||||
## 安装插件
|
||||
```
|
||||
cordova plugin add git+https://m.shuto.cn:8681/center/cordova-plugin-redScanner.git
|
||||
```
|
||||
|
||||
## 引入插件
|
||||
```
|
||||
declare const cordova: any;
|
||||
```
|
||||
|
||||
## 方法
|
||||
```
|
||||
cordova.plugins.redScanner.scan((code: string) => {
|
||||
console.log(code);
|
||||
}, (error: any) => {
|
||||
console.log(error);
|
||||
});
|
||||
```
|
||||
17
package.json
Normal file
17
package.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "cordova-plugin-redscanner",
|
||||
"version": "1.0.0",
|
||||
"description": "redScanner plugin",
|
||||
"cordova": {
|
||||
"id": "cordova-plugin-redScanner",
|
||||
"platforms": [
|
||||
"android"
|
||||
]
|
||||
},
|
||||
"keywords": [
|
||||
"cordova",
|
||||
"plugin"
|
||||
],
|
||||
"author": "yc",
|
||||
"license": "Apache-2.0"
|
||||
}
|
||||
28
plugin.xml
Normal file
28
plugin.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<plugin id="cordova-plugin-redScanner" version="0.0.1"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" xmlns="http://apache.org/cordova/ns/plugins/1.0">
|
||||
<name>RedScanner Plugin</name>
|
||||
<js-module name="cordova-plugin-redScanner" src="www/redScanner.js">
|
||||
<clobbers target="cordova.plugin.redScanner"/>
|
||||
</js-module>
|
||||
<platform name="android">
|
||||
<config-file parent="/*" target="res/xml/config.xml">
|
||||
<feature name="RedScanner">
|
||||
<param name="android-package" value="cordova.plugin.redScanner.RedScanner"/>
|
||||
</feature>
|
||||
</config-file>
|
||||
|
||||
<source-file src="src/android/cordova/plugin/redScanner/RedScanner.java"
|
||||
target-dir="cordova/plugin/redScanner"/>
|
||||
|
||||
<lib-file src="src/android/libsref/ScannerAPI.jar" />
|
||||
|
||||
<config-file target="AndroidManifest.xml" parent="/manifest/application">
|
||||
<uses-library android:name="android.scanner.library"/>
|
||||
</config-file>
|
||||
<config-file target="AndroidManifest.xml" parent="/*">
|
||||
<uses-permission android:name="android.permission.CAMERA"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
</config-file>
|
||||
</platform>
|
||||
</plugin>
|
||||
83
src/android/cordova/plugin/redScanner/RedScanner.java
Normal file
83
src/android/cordova/plugin/redScanner/RedScanner.java
Normal file
@@ -0,0 +1,83 @@
|
||||
package cordova.plugin.redScanner;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import org.apache.cordova.CallbackContext;
|
||||
import org.apache.cordova.CordovaPlugin;
|
||||
import org.apache.cordova.PluginResult;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
|
||||
import com.seuic.scanner.DecodeInfo;
|
||||
import com.seuic.scanner.DecodeInfoCallBack;
|
||||
import com.seuic.scanner.ScannerFactory;
|
||||
import com.seuic.scanner.Scanner;
|
||||
import com.seuic.scanner.StatusCallBack;
|
||||
|
||||
|
||||
|
||||
public class RedScanner extends CordovaPlugin implements DecodeInfoCallBack, StatusCallBack {
|
||||
private CallbackContext cb;
|
||||
private Scanner scanner;
|
||||
private boolean isOpen = false;
|
||||
|
||||
|
||||
@Override
|
||||
protected void pluginInitialize() {
|
||||
super.pluginInitialize();
|
||||
scanner = ScannerFactory.getScanner(cordova.getContext());
|
||||
scanner.setDecodeInfoCallBack(this);
|
||||
scanner.setStatusCallBack(this);
|
||||
isOpen = scanner.open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
|
||||
if("scan".equals(action)) {
|
||||
cb = callbackContext;
|
||||
if(!isOpen) {
|
||||
scanner.open();
|
||||
}
|
||||
Log.d("SCAN_PLUGIN", "start scan: ");
|
||||
scanner.startScan();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 扫码结果回调
|
||||
*/
|
||||
@Override
|
||||
public void onDecodeComplete(DecodeInfo decodeInfo) {
|
||||
Log.d("SCAN_PLUGIN", "onDecodeComplete: "+decodeInfo.codetype+"----"+decodeInfo.barcode);
|
||||
PluginResult result = new PluginResult(PluginResult.Status.OK, decodeInfo.barcode);
|
||||
result.setKeepCallback(false);
|
||||
cb.sendPluginResult(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 扫码状态回调
|
||||
*/
|
||||
@Override
|
||||
public void onStatusCallBack(int status, int info) {
|
||||
Log.d("SCAN_PLUGIN", "onDStatus: "+status+"----"+info);
|
||||
if(status == 2) { // status = 2,扫码超时不需要返回
|
||||
PluginResult result = new PluginResult(PluginResult.Status.NO_RESULT);
|
||||
result.setKeepCallback(false);
|
||||
cb.sendPluginResult(result);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause(boolean multitasking){
|
||||
super.onPause(multitasking);
|
||||
scanner.stopScan();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
scanner.stopScan();
|
||||
}
|
||||
}
|
||||
BIN
src/android/libsref/ScannerAPI.jar
Normal file
BIN
src/android/libsref/ScannerAPI.jar
Normal file
Binary file not shown.
10
www/redScanner.js
Normal file
10
www/redScanner.js
Normal file
@@ -0,0 +1,10 @@
|
||||
var exec = require('cordova/exec');
|
||||
|
||||
var redScanner = function RedScannser() {};
|
||||
|
||||
redScanner.scan = function(success, error) {
|
||||
exec(success, error, 'RedScanner', 'scan', []);
|
||||
};
|
||||
|
||||
|
||||
module.exports = redScanner;
|
||||
Reference in New Issue
Block a user