更新记录

1.0.2(2026-08-14)

ZT411 ZR138 斑马打印机插件(UTS 版)

封装ZT411 ZR138 斑马蓝牙打印机的 uni-app UTS 原生插件(仅 Android)。 支持:连接管理 + 状态查询、CPCL 标签打印、ESC/POS 小票打印,以及 SGD / 透传指令。 其它需要源码的购买后联系Wx:wj1477544695


平台兼容性

ZT411 ZR138 斑马打印机插件(UTS 版)

封装ZT411 ZR138 斑马蓝牙打印机的 uni-app UTS 原生插件(仅 Android)。 支持:连接管理 + 状态查询、CPCL 标签打印、ESC/POS 小票打印,以及 SGD / 透传指令。

目录结构

zr-zebra-printer/
└─ utssdk/
   ├─ interface.uts            # 对外 API 类型声明
   └─ app-android/
      ├─ index.uts             # Android 实现(包裹 zebra-core 核心类)
      ├─ config.json           # minSdkVersion 等原生配置
      ├─ AndroidManifest.xml   # 蓝牙权限声明
      └─ libs/
         ├─ ZebraPrinter_Android_SDK_1.0.jar   # 原厂 SDK
         └─ zebra-core-1.0.0.jar               # 指令批处理核心封装(已编译验证)

/demo/printer.txt未vue2的蓝牙链接页面示例

使用前提

  • HBuilderX 3.6.8+(推荐 4.x),使用自定义基座或云端打包(UTS 不支持标准基座调试)。
  • 目标设备系统版本 ≥ Android 6.0(minSdk 23)。
  • libs/ 下两个 jar 已就位,无需额外配置依赖。

在 uni-app 项目中集成

  1. 将本插件整个 uni_modules/zr-zebra-printer 目录复制到你的 uni-app 工程 uni_modules/ 下。
  2. .vue / .uts 中:
import * as Zebra from 'zr-zebra-printer'

await Zebra.requestBluetoothPermissions()      // 申请蓝牙权限
const r = await Zebra.connect('AA:BB:CC:DD:EE:FF')
if (r.code === 0) {
  await Zebra.exec([
    { m: 'cpcl.init' },
    { m: 'cpcl.label', height: 400, quantity: 1 },
    { m: 'cpcl.text', x: 10, y: 10, data: 'Hello Zebra' },
    { m: 'cpcl.print' }
  ])
  await Zebra.disconnect()
}

详见仓库根目录 README.md

隐私、权限声明

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

<!-- Android 11 及以下:经典蓝牙权限(安装即授予,maxSdkVersion=30 限定范围) --> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /> <!-- Android 12+:新蓝牙权限 --> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" tools:targetApi="31" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <!-- 旧版本通过 MAC 直连蓝牙常需定位权限用于扫描 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

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

插件不采集任何数据

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