更新记录

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('设备连接失败');
                    }
                }
            }

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问