function printByIds(ids) {
|
// //console.log(ids)
|
// //console.log("2")
|
$.ajax({
|
url: app.API_URL_HEADER + "/XKYDHD/BarInfoDY",
|
data: {
|
"ids": ids,
|
},
|
DataType: "json",
|
type: "post",
|
async: false,
|
//timeout: 30000,
|
success: function (data) {
|
//console.log(JSON.stringify(data));
|
//console.log(data.status);
|
if (data.status == 0) {
|
// console.log(JSON.stringify(data.data));
|
try {
|
var printCmd = ""
|
matterTable = data.data.matterTable;
|
for (var i = 0; i < matterTable.length; i++) {
|
var templateNo = matterTable[i].FNO;
|
console.log(matterTable[i]);
|
switch (templateNo) {
|
case "1":
|
printCmd += printTemplate(matterTable[i]) + "\r\n";
|
break;
|
|
default:
|
mui.alert("获取模板编号失败,请检查数据")
|
return false
|
}
|
}
|
// //console.log("error1");
|
setTimeout(function () {
|
doPrint(printCmd, 1)
|
}, 1000)
|
} catch (e) {
|
// //console.log("error2");
|
plus.ui.toast("打印执行异常: " + e)
|
//plus.ui.toast("printErr: " + err)
|
}
|
|
} else {
|
////console.log("error3");
|
//查询失败原因
|
plus.ui.toast(data.msg);
|
}
|
},
|
error: function (xhr, type, errorThrown) {
|
plus.ui.toast('打印失败!失败类型是:' + type);
|
}
|
});
|
}
|
|
|
function doPrint(printCmd, printNum) { //printNum:打印次数
|
if (printNum < 3) { //只递归3次
|
try {
|
////console.log("打印机连接状态:" + bluetoothSocket.isConnected())
|
var connectStatus = 0; //连接状态
|
for (var i = 0; i < 10; i++) {
|
if (!bluetoothSocket.isConnected()) {
|
plus.ui.toast("重新连接");
|
bluetoothSocket.connect();
|
}
|
////console.log("重连次数i"+i)
|
if (bluetoothSocket.isConnected()) {
|
connectStatus = 1;
|
break;
|
} else {
|
continue;
|
}
|
}
|
// //console.log("status:"+connectStatus)
|
if (connectStatus == 1) {
|
var outputStream = bluetoothSocket.getOutputStream();
|
plus.android.importClass(outputStream);
|
var arrayBuffer = plus.android.invoke(printCmd, 'getBytes', 'gbk'); //stringToByte(printCmd);
|
outputStream.write(arrayBuffer);
|
outputStream.flush();
|
} else {
|
plus.ui.toast("连接打印机失败")
|
}
|
} catch (e) {
|
printNum++;
|
plus.ui.toast("正在重连打印机第" + printNum + "次:" + e)
|
////console.log(e)
|
setTimeout(initBluetooth(), 1000) //一连接异常就初始化打印机
|
setTimeout(function () {
|
doPrint(printCmd, printNum) //重新执行
|
}, 1000)
|
}
|
} else { //不再回调自身
|
try {
|
////console.log("打印机连接状态:" + bluetoothSocket.isConnected())
|
var connectStatus = 0; //连接状态
|
for (var i = 0; i < 10; i++) {
|
if (!bluetoothSocket.isConnected()) {
|
plus.ui.toast("重新连接");
|
bluetoothSocket.connect();
|
}
|
////console.log("重连次数i"+i)
|
if (bluetoothSocket.isConnected()) {
|
connectStatus = 1;
|
break;
|
} else {
|
continue;
|
}
|
}
|
if (connectStatus == 1) {
|
var outputStream = bluetoothSocket.getOutputStream();
|
plus.android.importClass(outputStream);
|
var arrayBuffer = plus.android.invoke(printCmd, 'getBytes', 'gbk'); //stringToByte(printCmd);
|
outputStream.write(arrayBuffer);
|
outputStream.flush();
|
} else {
|
plus.ui.toast("连接打印机失败")
|
}
|
} catch (e) {
|
printNum++;
|
plus.ui.toast("打印机异常第" + printNum + "次:" + e)
|
////console.log(e)
|
mui.alert("重连打印机失败,请重新打开页面,初始化打印机。")
|
}
|
}
|
////console.log(printNum)
|
////console.log(printCmd)
|
}
|
|
function initBluetooth() {
|
try {
|
var main = plus.android.runtimeMainActivity();
|
var BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
|
var UUID = plus.android.importClass("java.util.UUID");
|
|
uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
|
var BAdapter = BluetoothAdapter.getDefaultAdapter();
|
BAdapter.cancelDiscovery(); //停止扫描
|
|
var address_mac = api_localStorageGet("printMac") ? api_localStorageGet("printMac") :
|
"DC:1D:30:3F:D2:50";
|
//console.log("status:"+address_mac)
|
device = BAdapter.getRemoteDevice(address_mac);
|
plus.android.importClass(device);
|
|
bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);
|
plus.android.importClass(bluetoothSocket);
|
//plus.ui.toast("蓝牙连接成功");
|
} catch (err) {
|
// //console.log(err);
|
//mui.alert(err)
|
plus.ui.toast("蓝牙连接异常!");
|
}
|
}
|