货无忧
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

220 lines
6.6 KiB

"use strict";
const common_vendor = require("../common/vendor.js");
const utils = {
init: () => {
return new Promise((relove, reject) => {
sunmi_print.connect((res) => {
console.log(res);
if (res.connect == "hello") {
console.log("打印机成功连接");
relove(true);
} else {
relove(false);
}
});
});
},
getstate: () => {
return new Promise((relove, reject) => {
sunmi_print.getPrinterStatus((result) => {
console.log("打印机当前状态是:" + result.status);
if (result.status == "running") {
relove(true);
} else {
let title;
switch (result.status) {
case "offline":
title = "打印机未连接";
break;
case "fault":
title = "打印机故障";
break;
case "outpaper":
title = "打印机缺纸";
break;
case "hot":
title = "打印机过热";
break;
case "open":
title = "打印机开盖";
break;
case "error":
title = "未知错误";
break;
}
common_vendor.index.showToast({
title,
icon: "error"
});
relove(false);
}
});
});
},
printxie: async (obj) => {
let res = await sunmi_print.labelLocate();
console.log(res);
setTimeout(() => {
sunmi_print.printText({
text: "日期:" + obj.rigthnumer + " ",
align: 2,
size: 22,
bold: true,
underline: false,
compact: false,
skip: true
});
sunmi_print.printText({
text: obj.title,
align: 1,
size: 90,
bold: true,
underline: false,
compact: true,
skip: true
});
sunmi_print.printDividingline({
style: 0,
height: "3"
}), sunmi_print.printText({
text: `件数:${obj.number1}`,
align: 0,
size: 40,
bold: true,
underline: false,
compact: true,
skip: true
});
sunmi_print.printText({
text: obj.leftnumber,
align: 0,
size: 27,
bold: true,
underline: false,
compact: true,
skip: true
});
sunmi_print.labelOutput();
}, 2e3);
},
initbl: () => {
let deviceList = [];
let main = plus.android.runtimeMainActivity();
let Context = plus.android.importClass("android.content.Context");
let BManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
plus.android.importClass(BManager);
let BAdapter = BManager.getAdapter();
plus.android.importClass(BAdapter);
let lists = BAdapter.getBondedDevices();
plus.android.importClass(lists);
let iterator = lists.iterator();
plus.android.importClass(iterator);
while (iterator.hasNext()) {
let d = iterator.next();
plus.android.importClass(d);
let temp = {
name: d.getName(),
address: d.getAddress(),
status: d.getBondState(),
uuids: d.getUuids(),
op: d
};
deviceList.push(temp);
}
return deviceList;
},
getbl: (dev, text) => {
plus.android.runtimeMainActivity();
let BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
let UUID = plus.android.importClass("java.util.UUID");
let uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
let BAdapter = BluetoothAdapter.getDefaultAdapter();
let device = BAdapter.getRemoteDevice(dev.address);
plus.android.importClass(device);
let bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);
plus.android.importClass(bluetoothSocket);
console.log("开始连接打印机:" + dev.name);
if (!bluetoothSocket.isConnected()) {
bluetoothSocket.connect();
if (bluetoothSocket.isConnected()) {
console.log("设备已连接,开始发送打印文件");
let outputStream = bluetoothSocket.getOutputStream();
plus.android.importClass(outputStream);
console.log(text);
let arrayBuffer = plus.android.invoke(text, "getBytes", "gbk");
outputStream.write(arrayBuffer);
outputStream.flush();
bluetoothSocket.close();
if (!bluetoothSocket.isConnected()) {
console.log("设备已关闭");
}
} else {
common_vendor.index.showToast({
title: "设备连接失败",
icon: "error",
duration: 2e3
});
}
}
},
inittts() {
TTSSpeech.init((status) => {
if (status === 0) {
console.log("引擎初始化成功");
TTSSpeech.setSpeed(100);
TTSSpeech.getInstallTTS((res) => {
console.log(JSON.stringify(res));
let flage = false;
res.forEach((v) => {
if (v.name == "com.iflytek.speechcloud") {
flage = true;
}
console.log(v.label + ": " + v.name);
});
if (!flage) {
common_vendor.index.showModal({
title: "安装语音引擎",
content: "请选择浏览器下载安装还在直接安装",
cancelText: "浏览器安装",
confirmText: "直接安装",
success: function(res2) {
if (res2.confirm) {
var fileSaveUrl = plus.io.convertLocalFileSystemURL("static/TTS.apk");
plus.runtime.install(
//安装
fileSaveUrl,
{
orce: true
},
function(res3) {
utils.showToast("更新成功,请重新打开APP");
TTSSpeech.setEngine("com.iflytek.speechcloud");
plus.runtime.quit();
}
);
} else if (res2.cancel) {
setTimeout(() => {
plus.runtime.openURL("http://htys.oss-cn-chengdu.aliyuncs.com/htys/5402c622c319fac17c50fe52581cb627.apk");
setTimeout(() => {
plus.runtime.quit();
}, 2500);
}, 1500);
}
}
});
}
});
} else {
console.log("引擎初始化失败");
}
}, "com.iflytek.speechcloud");
},
ttsspke: (text) => {
console.log("语音播报");
if (!text) {
return;
}
TTSSpeech.speak({ text });
}
};
exports.utils = utils;