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
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;
|
|
|