diff --git a/src/android/cordova/plugin/jcprinter/JcPrinter.java b/src/android/cordova/plugin/jcprinter/JcPrinter.java index 27a9a9f..13a2889 100644 --- a/src/android/cordova/plugin/jcprinter/JcPrinter.java +++ b/src/android/cordova/plugin/jcprinter/JcPrinter.java @@ -38,9 +38,7 @@ import java.util.Set; public class JcPrinter extends CordovaPlugin { - private static final String TAG = "MainActivity"; - private static final String RB_THERMAL = "热转印"; - private Context context; + private static final String TAG = "JcPrinter"; private Method[] methods = Util.getInstance().getClass().getDeclaredMethods(); @@ -82,50 +80,55 @@ public class JcPrinter extends CordovaPlugin { @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { - System.out.println("action = " + action); - switch (action) { - case "print": - this.print(args, callbackContext); - return true; + try{ + Log.d(TAG,"action = " + action); + switch (action) { + case "print": + this.print(args, callbackContext); + return true; - case "getList": - this.getList(callbackContext); - return true; - case "connectPrinter": - this.connectPrinter(args, callbackContext); - return true; - case "isConnection": - this.isConnection(callbackContext); - return true; - case "action": - String methodName = args.optString(0); - JSONArray methodJsonArgs = args.getJSONArray(1); - Object[] methodArgs = new Object[methodJsonArgs.length()]; - for(int i=0;iinfo = new ArrayList<>(); - for(int i=0;i info = new ArrayList<>(); + info.add(infoStr); //重置错误状态变量 isError = false; //重置取消打印状态变量 @@ -178,6 +179,7 @@ public class JcPrinter extends CordovaPlugin { } + @Override public void onError(int i) { callbackContext.error(i); @@ -344,6 +346,9 @@ public class JcPrinter extends CordovaPlugin { private void connectPrinter(JSONArray args, CallbackContext callbackContext) throws JSONException { JSONObject obj = args.getJSONObject(0); String address = obj.getString("address"); + if(Util.isConnection() == 0){ + Util.close(); + } int connectResult = Util.openPrinter(address); cordova.getActivity().runOnUiThread(() -> { String hint = ""; @@ -378,10 +383,10 @@ public class JcPrinter extends CordovaPlugin { int blueTooth_admin_permission = ContextCompat.checkSelfPermission(cordova.getContext(), Manifest.permission.BLUETOOTH_ADMIN); int blueTooth_privileged_permission = ContextCompat.checkSelfPermission(cordova.getContext(), Manifest.permission.BLUETOOTH_PRIVILEGED); int blueTooth_connect_permission = ContextCompat.checkSelfPermission(cordova.getContext(), "android.permission.BLUETOOTH_CONNECT"); - System.out.println("blueTooth_permission = " + blueTooth_permission); - System.out.println("blueTooth_admin_permission = " + blueTooth_admin_permission); - System.out.println("blueTooth_privileged_permission = " + blueTooth_privileged_permission); - System.out.println("blueTooth_connect_permission = " + blueTooth_connect_permission); + Log.d(TAG,"blueTooth_permission = " + blueTooth_permission); + Log.d(TAG,"blueTooth_admin_permission = " + blueTooth_admin_permission); + Log.d(TAG,"blueTooth_privileged_permission = " + blueTooth_privileged_permission); + Log.d(TAG,"blueTooth_connect_permission = " + blueTooth_connect_permission); if (blueTooth_permission == PERMISSION_GRANTED) { ActivityCompat.requestPermissions(cordova.getActivity(), new String[]{Manifest.permission.BLUETOOTH}, 1001); } @@ -414,7 +419,7 @@ public class JcPrinter extends CordovaPlugin { } catch (Exception e) { System.err.println(e.getMessage()); } - System.out.println("printers = " + printers); + Log.d(TAG,"printers = " + printers); callbackContext.success(printers); return printers; } diff --git a/www/jcPrinter.js b/www/jcPrinter.js index 725cdec..93adecc 100644 --- a/www/jcPrinter.js +++ b/www/jcPrinter.js @@ -26,22 +26,22 @@ var exec = require('cordova/exec'); * @param {*} success * @param {*} error */ -exports.print = function (data,info, success, error) { - exec(success, error, 'JcPrinter', 'print', [data,info]); +exports.print = async function (data,info) { + return new Promise((resolve, reject) => exec(resolve,reject, 'JcPrinter', 'print', [data,info])); }; -exports.getList = function (arg0, success, error) { - exec(success, error, 'JcPrinter', 'getList', [arg0]); +exports.getList = function (arg0) { + return new Promise((resolve, reject) => exec(resolve,reject, 'JcPrinter', 'getList', [arg0])); }; -exports.connectPrinter = function (arg0, success, error) { - exec(success, error, 'JcPrinter', 'connectPrinter', [arg0]); +exports.connectPrinter = function (arg0) { + return new Promise((resolve, reject) => exec(resolve,reject,'JcPrinter', 'connectPrinter', [arg0])); } -exports.connectPrinter = function (success, error) { - exec(success, error, 'JcPrinter', 'connectPrinter'); -} +exports.isConnection = function (arg0) { + return new Promise((resolve, reject) => exec(resolve,reject,'JcPrinter', 'isConnection', [arg0])); +} exports.Instance = { /**