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.
221 lines
6.6 KiB
221 lines
6.6 KiB
2 years ago
|
"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;
|