更新记录
v12.0.1(2021-10-20) 下载此版本
一、有同学运行项目会报错是由于项目本身引用了uView前端框架,现在已经去掉,全部改为原生组件 二、精简了部分代码
v1.0.1(2021-09-30) 下载此版本
v1.0.1 1、原生方式打印,适合所有蓝牙打印机
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
app-vue app-nvue | × | √ | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
一、前言
使用插件前请认真阅读插件包中的《蓝牙打印必读知识点》。我不希望大家只是简单的复制粘贴,了解了相关的知识点,对大家灵活运用蓝牙打印技术有非常大的帮助。针对大家在使用一些代码时出现的机型问题,打印不工作问题,乱码问题等做了详细的解答
二、使用说明
本插件为了尽量简洁,方便大家使用,只会提供关键的连接打印机和打印标签这两大部分的功能。至于原因,我在《蓝牙打印必读知识点》中有详细的说明。实际上搜索设备等功能根本不需要我们去做,使用安卓设备系统自带的蓝牙查找功能就够了。--完整示例请下载示例包--
1、操作方法
第一步:非常简单,用安卓设备自带的蓝牙功能搜索到蓝牙打印机设备后连接,连接成功后进入下一步。
第二步:进入插件主页,点击右上角的设置图标,弹出设置页面,里面就会出现我们刚刚已经连接成功的蓝牙设备了,勾选后,点击打印测试,既可实现打印。
2、初始化打印机代码
initPrinter: function() {
var that = this;
that.deviceList = [];
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
var BManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
plus.android.importClass(BManager);
var BAdapter = BManager.getAdapter();
plus.android.importClass(BAdapter);
var lists = BAdapter.getBondedDevices();
plus.android.importClass(lists);
var iterator = lists.iterator();
plus.android.importClass(iterator);
while (iterator.hasNext()) {
var d = iterator.next();
plus.android.importClass(d);
var temp = {
name: d.getName(),
address: d.getAddress(),
status: d.getBondState(),
uuids: d.getUuids(),
op: d
};
that.deviceList.push(temp);
}
}
3、打印代码
printSomething: function(sb) {
var that = this;
var main = plus.android.runtimeMainActivity();
var BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
var UUID = plus.android.importClass("java.util.UUID");
var uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
var BAdapter = BluetoothAdapter.getDefaultAdapter();
console.log(that.device.address)
var device = BAdapter.getRemoteDevice(that.device.address);
plus.android.importClass(device);
var bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);
plus.android.importClass(bluetoothSocket);
if (!bluetoothSocket.isConnected()) {
bluetoothSocket.connect();
if (bluetoothSocket.isConnected()) {
console.log('设备已连接,开始发送打印文件');
var outputStream = bluetoothSocket.getOutputStream();
plus.android.importClass(outputStream);
sb(outputStream);
bluetoothSocket.close();
if (!bluetoothSocket.isConnected()) {
console.log('设备已关闭');
}
} else {
console.log('设备连接失败');
}
}
}