伊斯坦布尔 Cihangir 区的一家咖啡馆购买了 $260 的 Star Micronics TSP143IIIBI 蓝牙打印机,并以 $0 软件许可成本 构建了整个 POS — 因为 Chrome 的 Web Bluetooth API 直接从浏览器讲 ESC/POS。本指南涵盖工作代码、中文字符编码和真实边缘案例。
Web Bluetooth 配对
Chrome 56+ 在 Android、macOS、Linux 和 Windows 上支持 Web Bluetooth — iOS Safari 不支持。调用 navigator.bluetooth.requestDevice 配合 UUID 000018f0 打开操作系统选择器。TSP143IIIBI 暴露 FFE1 特征 用于写入 ESC/POS 字节流。
配对一次,但 Chrome 出于安全考虑要求每个会话都需要用户手势。解决方案:"连接打印机"按钮,在内存中保留 BluetoothDevice 引用。
中文编码 (GBK)
默认 ASCII 将中文打印为 "?"。TSP143 支持 GBK 双字节模式:
0x1C 0x26— 启用 GBK 模式- 使用 GBK 查找表将文本编码为 Uint8Array
- 切纸:
0x1D 0x56 0x00
重置策略
Bluetooth 连接在 4-5 分钟空闲后断开;每次打印前检查 device.gatt.connected。软复位 0x1B 0x40 会清除 GBK 设置 — 每次打印开始时重新设置。
Cihangir 咖啡馆在 90 天内打印了 11,400 张小票,只有 3 次复位事件。
常见问题
在 iPad 上工作吗? 不,iOS Safari 不支持 Web Bluetooth。
USB 型号? 是的,通过 Web USB API。
需要 HTTPS 吗? 是的,需要安全上下文。
觉得有用?分享给朋友。