爱分享 - uni-app
type: channel
link: http://gxxblw.com/tag/uni-app/
items: 【插件】UNI APP 实现商米打印机功能支持T1,T2,V2机型

【插件】UNI APP 实现商米打印机功能支持T1,T2,V2机型
type: item
date: 2021-06-28T19:55:00+08:00
description: uniapp 是目前比较主流的开发框架支持一套代码多端部署，本文主要讲解uniapp如何使用商米机型实现打印，扫码，开钱箱等功能实现文章索引文章索引适用机器插件功能插件不足如何使用代码使用调用方法列表事件监听使用注意问题插件下载适用机器本插件已测试商米机型 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字段说明字段类型空默认注释titlevarchar(32)是 主标题subTitelvarchar(16)是 副标题orderTotalPricevarchar(20)是 实收总金额printUservarchar(20)是 收银员orderIdvarchar(32)是0订单/流水IDsaleRelvarchar(32)是0售后联系goodsarray()是0商品品列表data.goods对象字段说明字段类型空默认注释goodNamevarchar(32)是 商品名称goodNumvarchar(16)是 购买数量goodNovarchar(20)是 商品编号goodPricevarchar(20)是 商品单价goodTotalPricevarchar(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.sa…