更新记录

1.0.0(2025-09-09)

  • 安卓蓝牙、usb、wifi打印;
  • ESC、TSPL、CPCL指令支持;

平台兼容性

uni-app(4.76)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - - 5.0 12 -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

xl-GPrinter 开发文档

蓝牙

蓝牙通信使用说明


扫描设备

gPrinter.scanBlue((device) => {
    console.log(`find device ${JSON.stringify(device)}`);
})

停止扫描

gPrinter.stopScanBlue()

连接设备

gPrinter.connectBlue(deviceId)

断开设备

gPrinter.disconnect()

写入数据

/*
需要先构造指令,写入才有效
    如:
        gPrinter.tscSelfTest()
       gPrinter.writeData((info) => {
        console.log(`writeData complete: ${info.complete}, msg: ${info.msg}`);
    });
*/ 
// 回调参数可选:返回写入状态和信息
gPrinter.writeData((info) => {
    console.log(`writeData complete: ${info.complete}, msg: ${info.msg}`);
});

蓝牙事件监听


蓝牙开关关闭监听
gPrinter.onBlueStateChange((on) => {
    console.log(`蓝牙 ${on ? '开启' : '关闭'}`);
});
蓝牙连接状态监听
gPrinter.onConnectSateChange((payload) => {
    uni.showToast({
        title: `blue\n${payload.state}`,
        icon: 'none'
    })
    switch (payload.state) {
        case 'connectSuccess':
           console.log("连接成功");
            break;
        case 'disconnect':
           console.log("连接断开");
            break;
        case 'connectFail':
          console.log("连接失败");
            break;
    }
});
蓝牙数据回传监听
gPrinter.onDataReceive((data) => {
    let result = String.fromCharCode(...data);
    console.log("收到打印机数据: ", result, data);
});

wifi

wifi打印(以太网) 接口说明


获取连接状态 - isConnect

const isConnect = gPrinter.isConnect();
uni.showToast({
    title: `连接状态: ${isConnect ? '已连接' : '未连接'}`
})

连接(以太网)- connectNet

gPrinter.connectNet({
    ip: '192.168.100.110',
    port: '8000'
})

断开(以太网)- disconnect

gPrinter.disconnect()

写入数据 - writeData((info) => { // 回调 } )

/*
需要先构造指令,写入才有效
    如:
        gPrinter.tscSelfTest()
       gPrinter.writeData((info) => {
        console.log(`writeData complete: ${info.complete}, msg: ${info.msg}`);
    });
*/ 
// 回调参数可选:返回写入状态和信息
gPrinter.writeData((info) => {
    console.log(`writeData complete: ${info.complete}, msg: ${info.msg}`);
});

wifi(以太网) 事件监听


wifi(以太网)连接状态监听
gPrinter.onConnectSateChange((payload) => {
    uni.showToast({
        title: `blue\n${payload.state}`,
        icon: 'none'
    })
    switch (payload.state) {
        case 'connectSuccess':
           console.log("连接成功");
            break;
        case 'disconnect':
           console.log("连接断开");
            break;
        case 'connectFail':
          console.log("连接失败");
            break;
    }
});
打印机数据回传监听
gPrinter.onDataReceive((data) => {
    let result = String.fromCharCode(...data);
    console.log("收到打印机数据: ", result, data);
});

USB(仅安卓)

USB 通信接口说明


获取连接状态 - isConnect

const isConnect = gPrinter.isConnect();
uni.showToast({
    title: `连接状态: ${isConnect ? '已连接' : '未连接'}`
})

获取设备 - getUsbDevices

const devices = gPrinter.getUsbDevices();

连接USB设备- connectUsb

gPrinter.connectUsb(name) // 参数为设备名称, device.deviceName

断开USB设备- disconnect

KPrinter.disconnect();

写入数据 - writeData((info) => { // 回调 } )

/*
需要先构造指令,写入才有效
    如:
        gPrinter.tscSelfTest()
       gPrinter.writeData((info) => {
        console.log(`writeData complete: ${info.complete}, msg: ${info.msg}`);
    });
*/ 
// 回调参数可选:返回写入状态和信息
gPrinter.writeData((info) => {
    console.log(`writeData complete: ${info.complete}, msg: ${info.msg}`);
});

USB 事件监听


USB连接状态监听
gPrinter.onConnectSateChange((payload) => {
    uni.showToast({
        title: `blue\n${payload.state}`,
        icon: 'none'
    })
    switch (payload.state) {
        case 'connectSuccess':
           console.log("连接成功");
            break;
        case 'disconnect':
           console.log("连接断开");
            break;
        case 'connectFail':
          console.log("连接失败");
            break;
    }
});
USB 设备插入事件回调
gPrinter.onUsbAttached((device) => {
    console.log(`接入usb设备${JSON.stringify(device)}`);
    uni.showToast({
        title: `接入usb设备${device.deviceName}`
    })
});
打印机数据回传监听
gPrinter.onDataReceive((data) => {
    let result = String.fromCharCode(...data);
    console.log("收到打印机数据: ", result, data);
});

简单打印示例 - 详细使用请下载示例运行

gPrinter.tscSize({
        width: 76,
        height: 130
    });
    gPrinter.tscCls();
    gPrinter.tscText({
        x: 10,
        y: 60,
        content: '小时不识月',
        font: 'TSS24.BF2',
    })
    gPrinter.tscText({
        x: 150,
        y: 60,
        content: '呼作白玉盘',
        font: 'TSS24.BF2',
        xScal: 2,
        yScal: 2
    })
    gPrinter.tscPrint(1);
    gPrinter.writeData((info) => {
        console.log(`writeData complete: ${info.complete}, msg: ${info.msg}`);
    });

隐私、权限声明

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

安卓: <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/> <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> iOS: <key>NSBluetoothAlwaysUsageDescription</key> <string>开启蓝牙</string> <key>NSBluetoothPeripheralUsageDescription</key> <string>蓝牙</string> <key>UIBackgroundModes</key> <array> <string>bluetooth-central</string> </array>

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

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