更新记录
3.1.1(2026-05-30)
-上传示例工程
3.1.0(2026-05-30)
- 从旧版
uni-native-plugin-shangmi-printer-v3.0迁移至 UTS 插件格式 - 架构改为 UTS 薄壳 + Kotlin 桥接(PrinterBridge.kt)
- 使用
import { xx } from '@/uni_modules/ly028-SMPrinter'替代uni.requireNativePlugin - 所有 API 方法、参数格式、返回格式与旧版保持完全兼容
- 新增 iOS 空实现占位
平台兼容性
uni-app(4.18)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | √ | 4.4 | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.18)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
ly028-SMPrinter 商米打印机 UTS 打印插件
📌 旧版原生插件(非 UTS 版本):https://ext.dcloud.net.cn/plugin?id=6957
商米打印机热敏打印插件,支持图文混合、二维码、条码等多种格式混合打印,支持网络/本地图片,支持扫码枪监听。
全局只需调用一个方法即可完成绑定服务然后打印,软件退出后会自动解绑打印服务。只用一个方法即可,无过多繁琐操作,减少操作步骤。
适用平台
- Android(商米 Sunmi 设备)
安装方式
方式一:插件市场下载(推荐)
从 DCloud 插件市场搜索 ly028-SMPrinter 并导入。
方式二:本地 uni_modules
将 uni_modules/ly028-SMPrinter/ 放到项目 uni_modules/ 目录下。
快速使用
极简模式(推荐)
只需调用 transactionPrinter 一个方法,内部自动处理服务绑定+打印+自动解绑:
import { transactionPrinter } from '@/uni_modules/ly028-SMPrinter'
// 只用一个方法即可完成绑定服务然后打印
transactionPrinter({
contents: [
{ content: 'Hello World', type: 'TEXT', fontSize: 30 },
{ content: 'wx:liu2774', type: 'QR', align: 'center', qrSize: 6 },
{ type: 'PIC', url: 'http://example.com/logo.jpg', align: 'center' }
]
}, res => {
console.log('打印结果:', res)
})
软件退出后会自动解绑打印服务,无需手动调用 unBindService。
完整模式
如需手动控制服务生命周期,也可以自行绑定/解绑:
import {
bindService,
transactionPrinter,
unBindService
} from '@/uni_modules/ly028-SMPrinter'
// 1. 绑定服务
bindService(res => {
console.log('绑定结果:', res)
})
// 2. 混合打印
transactionPrinter({
contents: [
{ content: '姓名: 刘永', type: 'TEXT', fontSize: 30 },
{ content: '微信: liu2774', type: 'QR', align: 'left', qrSize: 4 },
{ type: 'BARCODE', align: 'center', content: 'liu2774', symbology: 8 }
]
}, res => {
console.log('打印结果:', res)
})
// 3. 退出时解绑(可省,插件退出时自动解绑)
unBindService(res => {})
API 文档
打印方法(核心)
| 方法 | 参数 | 说明 |
|---|---|---|
| transactionPrinter(options, callback) | options, callback | 核心方法:混合打印 TEXT/QR/BARCODE/PIC。内部自动绑定服务,无需手动 bindService |
| printText(options, callback) | options, callback | 打印简单键值对文本({contents:[{title,content}]}) |
| printLabTag(options, callback) | options, callback | 打印定制标签,使用预定义布局 QR + 5 行文本 |
💡 推荐使用
transactionPrinter一个方法完成所有打印需求,无需关心服务绑定和解绑,软件退出后自动解绑。
基础方法
| 方法 | 参数 | 说明 |
|---|---|---|
| bindService(callback) | callback: (result) => void | 绑定 Sunmi 打印服务(一般不需要手动调用) |
| unBindService(callback) | callback: (result) => void | 解绑打印服务(软件退出自动解绑,一般不需要手动调用) |
设备信息
| 方法 | 参数 | 说明 |
|---|---|---|
| getPrinterSerialNo(callback) | callback: (result) => void | 获取打印机序列号 |
| getPrinterModal(callback) | callback: (result) => void | 获取打印机型号 |
| getPrinterVersion(callback) | callback: (result) => void | 获取打印机固件版本 |
| getSN(callback) | callback: (result) => void | 获取终端设备序列号 |
硬件交互
| 方法 | 参数 | 说明 |
|---|---|---|
| initScanner(options, callback) | options: {}, callback | 注册扫码枪监听,扫码数据通过 callback 回调 |
内容项类型
transactionPrinter 的 contents 数组支持以下类型:
TEXT(文本)
默认类型,可不传 type。支持对齐方式和字体大小:
{
type: 'TEXT', // 可省略,默认 TEXT
content: '姓名: Matt-刘永',
align: 'left', // left | center | right,默认 left
fontSize: 25 // 字体大小,默认 25
}
QR(二维码)
生成并打印二维码:
{
type: 'QR',
content: 'wx:liu2774', // 二维码内容
align: 'center',
qrSize: 5 // 二维码尺寸 4-16,默认 5
}
BARCODE(条码)
支持 9 种条码类型:
{
type: 'BARCODE',
content: 'liu2774', // 条码内容
align: 'center',
symbology: 8, // 条码类型 0-8,默认 8 (CODE128)
height: 162, // 条码高度 1-255,默认 162
width: 2, // 条码宽度 2-6,默认 2
textPosition: 2 // 文字位置 0-3,默认 2(下方)
}
symbology 条码类型对照:
| 值 | 类型 |
|---|---|
| 0 | UPC-A |
| 1 | UPC-E |
| 2 | JAN13(EAN13) |
| 3 | JAN8(EAN8) |
| 4 | CODE39 |
| 5 | ITF |
| 6 | CODABAR |
| 7 | CODE93 |
| 8 | CODE128 |
PIC(图片)
支持网络图片和本地图片:
{
type: 'PIC',
url: 'http://m.liuyong028.cn/default.jpg', // 网络URL 或 本地文件路径
align: 'center'
}
标签打印
printLabTag 使用预定义 Android 布局,格式为 QR 码 + 5 行文本:
import { printLabTag } from '@/uni_modules/ly028-SMPrinter'
printLabTag({
qr: { qrTxt: 'wx:liu2774', qrSize: 350 }, // 左侧二维码
t1: { txt: 'IN21002662', fontsize: 50 }, // 右侧第1行
t2: { txt: '笔记本电脑', fontsize: 40 }, // 右侧第2行
t3: { txt: '联想ThinkPadL13', fontsize: 40 },// 右侧第3行
t4: { txt: 'www.liuyong028.cn', fontsize: 35 }, // 底部左
t5: { txt: '打印日期:2022-07-08', fontsize: 35 } // 底部右
}, res => {
console.log('标签打印结果:', res)
})
返回格式
所有方法通过 callback 返回结果,格式统一:
// 成功
{ code: 0, msg: "打印成功" }
{ code: 0, msg: "获取成功", data: "xxxx" } // getter 方法
// 失败
{ code: 1, msg: "打印服务未初始化" }
注意事项
- 仅支持商米 Sunmi 设备,依赖
com.sunmi:printerlibrary:1.0.13 - 极简使用:只需调用
transactionPrinter一个方法,内部自动绑定服务并打印 - 自动解绑:软件退出后会自动解绑打印服务,无需手动调用
unBindService - 标签打印(
printLabTag)使用 Android 布局渲染后打印,支持自定义字体 - 扫码枪监听(
initScanner)注册后持续监听,扫码即回调 - 图片打印支持网络 URL(http/https)和本地文件路径
旧版迁移
旧版原生插件地址:https://ext.dcloud.net.cn/plugin?id=6957
主要变化:
| 项目 | 旧版(原生插件) | 新版(UTS 插件) |
|---|---|---|
| 调用方式 | uni.requireNativePlugin('LY028-NativeSdk-Printer') |
import { xxx } from '@/uni_modules/ly028-SMPrinter' |
| API 签名 | 使用 @UniJSMethod 注解 | UTS 导出函数 |
| 参数格式 | 完全一致 | 完全兼容 |
| 返回格式 | {code, msg, data} |
{code, msg, data} 完全一致 |
许可证
MIT

收藏人数:
购买普通授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 920
赞赏 0
下载 12096054
赞赏 1918
赞赏
京公网安备:11010802035340号