// 写入低功耗蓝牙设备的特征值
function writeCharacteristics() {
plus.bluetooth.writeBLECharacteristicValue({
deviceId: deviceId, //必选 蓝牙设备的id
serviceId: serviceId, //必选 蓝牙服务的uuid
characteristicId: characteristicId, //选必蓝牙特征值的UUID
value: stringToByte(value), //必选要写入的数据
success: function(e) {
console.log('write characteristics success: ' + JSON.stringify(e));
},
fail: function(e) {
console.log('write characteristics failed: ' + JSON.stringify(e));
}
});
}
执行返回
write characteristics success: {"code":0,"message":"ok"}
但是打印机没有反应
已测试使用wx小程序可以打印
// 打印字符串
owner.PrintString = function(string) {
var bytes = plus.android.invoke(string, 'getBytes', 'gbk');
owner.OutputStream.write(bytes);
};
使用 outputStream.write方式也是同样效果
uuid :49535343-fe7d-4ae5-8fa9-9fafd205e455
characteristicId:
{"uuid":"49535343-1e4d-4bd9-ba61-23c647249616","properties":{"read":false,"write":false,"notify":true,"indicate":false}} at js/common.js:140
{"uuid":"49535343-8841-43f4-a8d4-ecbe34729bb3","properties":{"read":false,"write":true,"notify":false,"indicate":false}} at js/common.js:140
{"uuid":"49535343-aca3-481c-91ec-d85e28a60318","properties":{"read":false,"write":true,"notify":true,"indicate":false}} at js/common.js:140
{"uuid":"49535343-6daa-4d02-abf6-19569aca69fe","properties":{"read":true,"write":true,"notify":false,"indicate":false}} at js/common.js:140
7 个回复
9***@qq.com - 扬帆起航
uin-app蓝牙打印机demo
https://github.com/qihang666/BluetoothPrinter
这个demo已经实现好了 拿来用吧 记得点个star
DCloud_UNI_GSQ
如果是uniapp的话,试试uni的API
tanyi (作者)
用的app的 uni和app不一样吗
2019-01-08 11:28
tanyi (作者)
下午试过了 uni的api 也还是不行
2019-01-08 20:25
l***@163.com
我使用了你了代码,在最新的HBuilderX1.4.1里面测试的可以打印的,开始也不能打印,是因为我选错了特征值,你可以试一下
tanyi (作者)
我知道原因了,不是代码问题,是这个打印机必须要带指令才可以打印。现在发现打印不了图片。需要output一个二进制,但是js不能用二进制流
2019-01-17 09:14
lgsh10086
能否分享一下代码 ?
2019-03-01 15:19
tanyi (作者)
问题解决了 代码是没问题的 问题在于 这个打印机需要带指令 不能直接打印字符串
handshaker
请问是怎么解决的?指令是什么?指令是写在传输的value里吗?
2020-12-10 09:20
lgsh10086
大佬能否共享一下代码啊
3***@qq.com - 80后it男
打印机如何带指令?
糖糖男儿
//outputStream.write([0x1B,0x45,0x01]); //加粗打印字体
//outputStream.write([0x1B,0x45,0x00]); //取消加粗打印字体
//outputStream.write([0x1B,0x61,0x00]); // 选择对齐方式居左对齐
//outputStream.write([0x1B,0x61,0x01]); // 选择对齐方式居中对齐
//outputStream.write([0x1B,0x61,0x02]); // 选择对齐方式居右对齐
//outputStream.write([0x1d,0x21,0x11]); // 宽高加倍
//outputStream.write([0x1d,0x21,0x10]); // 宽加倍
//outputStream.write([0x1d,0x21,0x01]); // 高加倍
//outputStream.write([0x1d,0x21,0x00]); // 取消字体放大
//outputStream.write([0x1b,0x33,32]); // 默认行间距32
2019-09-20 16:26
ahtl_yy
大佬 能分享一下代码吗, 有偿