更新记录
v1.2(2021-06-29)
- 更新文档说明
- 更新T1,T2副屏显示价格功能
v1.1(2020-12-10)
2020年12月10日 (v1.1)
- 更新钱箱功能
- 更新门票模板功能
v1.0(2020-11-26)
2020年11月26
- 实现内置打印机小票打印功能
- 实现USB外接扫码枪识别功能
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 9.0 | armeabi-v7a:支持,arm64-v8a:未测试,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
适用机器
本插件已测试商米机型 V2手持机 T1,T2 ,大家看好收银机牌子和机型,,商米收银机V2手持机 T1,T2!商米收银机V2 T1,T2!商米收银机V2 T1,T2!重要的事情要说3次,其他的机子尚未经过测试,如有问题可联系作者
注意::最近看很多人直接购买插件有问题发现不是同类型机型,如非同类型机型可先试用,插件市场可免费试用一段时间,如果可以使用,感谢大家的支持打赏购买一下,相对于市区其他同类型插件,本插件价格并不高。
现插件支持功能
- 实现商超类型票据打印,适配58mm,80mm页面纸张类型
- 实现收银机USB外接扫码枪获取商品条码,原理通过广播监听扫码数据,并回调通知收扫码结果,无需使用input组件。(解决input组件弹出键盘问题,失去焦点无法获取内容问题)
- 钱箱功能
- 切刀功能(仅支持有切刀的机型)
- 台式机主副屏通信
插件不足
因为票据模板内容各方有不同的需求,无法满足各位的不同显示效果,同时为了考虑插件的易用性,尽可能封装好直接调用,大家也懒得再看一大堆的文档和参数。
打印小票效果
如何使用
代码使用
因为考虑需求比较简单所以再接口设计方面并未考虑太复杂
1. 初始化插件
//引用插件对象以来
const shangMiPrint = uni.requireNativePlugin('G5KJ-ShangMiPrint')
const globalEvent = uni.requireNativePlugin('globalEvent');
//onLoad函数中执行始化插件
onLoad() {
let _this=this;
shangMiPrint.init(function(e){
uni.showModal({
content:"回调返回结果:"+JSON.stringify(e)
})
})
//扫码返回
globalEvent.addEventListener('scancode',function(e){
uni.showModal({
content:"回调返回结果:"+JSON.stringify(e)
})
_this.code=e.data
})
}
2. 类超市外卖小票打印
//打印调用
let data={
title:"广西*****馆",
subTitel:"收银小票单据",
orderTotalPrice:"¥59",
printUser:"收银员校长",
orderId:"843905060353",
saleRel:"0776-72939424 李亮",
goods:[
{
goodName:"植护牌压花纸纸巾/56抽",
goodNum:'1',
goodNo:'78905060353',
goodPrice:'¥17',
goodTotalPrice:'¥17'
},
{
goodName:"植护牌压花纸纸巾/56抽",
goodNum:'1',
goodNo:'78905060353',
goodPrice:'¥17',
goodTotalPrice:'¥17'
},
]
}
shangMiPrint.printTicket(data,function(e){
//打印返回结果:{code:ok}
alert(JSON.stringify(e))
})
打印字段字典说明
- data字段说明
字段 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
title | varchar(32) | 是 | 主标题 | |
subTitel | varchar(16) | 是 | 副标题 | |
orderTotalPrice | varchar(20) | 是 | 实收总金额 | |
printUser | varchar(20) | 是 | 收银员 | |
orderId | varchar(32) | 是 | 0 | 订单/流水ID |
saleRel | varchar(32) | 是 | 0 | 售后联系 |
goods | array() | 是 | 0 | 商品品列表 |
- data.goods对象字段说明
字段 | 类型 | 空 | 默认 | 注释 |
---|---|---|---|---|
goodName | varchar(32) | 是 | 商品名称 | |
goodNum | varchar(16) | 是 | 购买数量 | |
goodNo | varchar(20) | 是 | 商品编号 | |
goodPrice | varchar(20) | 是 | 商品单价 | |
goodTotalPrice | varchar(32) | 是 | 0 | 合计总价 |
3. 钱箱相关
//打开钱箱
shangMiPrint.openDrawer(function(e){
//
if(e.code=='ok'){
}
})
//获取钱箱状态
shangMiPrint.getDrawerStatus(function(e){
//true正常
if(e.data==true){
}
})
4. 二维码票务打印
let printData = []
let _this = this
let printTicketItem={
title: item.commodityName,//主标题
subTitle: item.saleName,//副标题
code: item.checkCode,//票码
indentId: item.indentId,// 订单Id
useDate: _this.dateFormat(item.useTime, 'YYYY-MM-DD'),//使用时间
saleDate: _this.dateFormat(item.initime, 'YYYY-MM-DD'),//销售时间
'remark': '本门票仅限当天使用,欢迎您的到来'
}
shangMiPrint.printTicketTemplet({
templetId: 'LY01',
cut: true,
data: printData//传入数组
}, function(e) {
//判断业务漏记
}
)
4. 主副屏通信
//price 为空时,主动关闭副屏
shangMiPrint.showPriceText({
title: '总金额',
content: '¥' + a,
price: a + ""
}, function() {
}
);
调用方法列表
1. 插件初始化
- init(func) 参数func:初始化成功回调
2. 小票打印
- printTicket(data,func)
参数data:打印数据 参数func:执行回调结果
3. 钱箱相关
- openDrawer(func)打开钱箱
- getDrawerStatus (func) 获取钱箱状态
3. 二维码票务打印
- printTicketTemplet(func)打印带二维码小票(景区票务,排号码等使用)
3. 主副屏通信显示价格
- showPriceText(func)显示价格(景区票务,排号码等使用)
事件监听
usb接口扫码枪返回条码
- scancode 事件监听回调
const globalEvent = uni.requireNativePlugin('globalEvent')
onLoad(){
let _this=this
globalEvent.addEventListener('scancode',function(e){
uni.showModal({
content:"回调返回结果:"+JSON.stringify(e)
})
//返回内容:{code:ok,data:'条码\n'}
_this.code=e.data
})
}
使用注意问题
-
插件使用调试需要先自定义打包基座,在进行测试,自定义基座可查看官方教程。 https://nativesupport.dcloud.net.cn/NativePlugin/use/use_local_plugin
-
使用插件无法打包 检查是否使用其他商米插件,同类型插件无法共同兼容使用
联系我
因篇幅有限,更详操作使用文档可在我的博客中查看,如使用过程中有什么问题可在我的博客中留言,博客文档链接:查看博客
博客文档地址:http://gxxblw.com/2021/06/28/38.html