uni已经统一封装了对接蓝牙的接口,目前在开发过程发现正常链接以及打印已经可以走通,不过大部分打印机需要通过输入十六进制指令进行初始化和特征标识
请问下一下这接口如何输入16进制呢?目前只有支持二进制的
uni.writeBLECharacteristicValue(OBJECT)
还有这个转码目前有公共接口不?
btOutStream.write(invoke('优乐农', 'getBytes', 'gbk'));
我找了基于native.js 已经有很多小伙伴实现了蓝牙打印,刚的问题类似以下代码:
原文地址
if(!btOutStream) {
shortToast("创建输出流失败!");
return;
}
//console.log(str);
var bytes = invoke(str, 'getBytes', 'gbk');
try {
btOutStream.write([0x1B,0x40]);
btOutStream.write([0x1d, 0x21, 0x11]); //宽高加倍 //也可以用 0x11 字体相对小
// btOutStream.write([0x1b, 0x61, 0x00]);//左边对齐
btOutStream.write([0x1b, 0x61, 0x01]);//中间对齐
// btOutStream.write([0x1b, 0x61, 0x02]);//右边对齐
// btOutStream.write([0x1b, 0x45, 0x01]);//加粗
btOutStream.write(invoke('优乐农', 'getBytes', 'gbk'));
btOutStream.write(0x0D);//打印加换行
btOutStream.write([0x1B,0x40]);//初始化
btOutStream.write([0x1b, 0x61, 0x01]);//中间对齐
btOutStream.write([0x1d, 0x21, 0x00]); //宽高加倍
btOutStream.write([0x1B,0x40]);
btOutStream.write(bytes);
//btOutStream.write(0x0D);
//btOutStream.flush();
//btOutStream.close();
//btOutStream.newLine();
} catch(e) {
return false;
}
return true;