更新记录

1.0.0(2023-12-12)

  • 打印文字 public void printText(String msg)
  • 换行打印文字 printTextNewLine(String msg)
  • 换行 printLine()
  • 打开钱箱 openDrawerCmd()
  • 打印空行 printLine(int size)
  • 设置字体大小 setTextSize(int size)
  • 字体加粗 bold(boolean isBold)
  • 打印一维条形码 printBarCode(String data)
  • 打印二维码 printQrCode(String data)
  • 设置对齐方式(0居左 1居中 2居右) setAlign(int position)
  • 获取字符串的宽度 getStringWidth(String str)
  • 切纸 cutPager()
  • 获取所有打印设备 getAllUsbDevice(UniJSCallback callback)
  • 获取设备号 getDevicesId(UniJSCallback callback)
  • 打印订单 printOrder(JSONObject options,UniJSCallback callback)

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择


插件使用

打印机插件

API说明

  • 打印文字 public void printText(String msg)
  • 换行打印文字 printTextNewLine(String msg)
  • 换行 printLine()
  • 打开钱箱 openDrawerCmd()
  • 打印空行 printLine(int size)
  • 设置字体大小 setTextSize(int size)
  • 字体加粗 bold(boolean isBold)
  • 打印一维条形码 printBarCode(String data)
  • 打印二维码 printQrCode(String data)
  • 设置对齐方式(0居左 1居中 2居右) setAlign(int position)
  • 获取字符串的宽度 getStringWidth(String str)
  • 切纸 cutPager()
  • 获取所有打印设备 getAllUsbDevice(UniJSCallback callback)
  • 获取设备号 getDevicesId(UniJSCallback callback)
  • 打印订单 printOrder(JSONObject options,UniJSCallback callback)
<template>
  <div>
    <button type="primary" @click="getDevicesId()">获取设备号</button>
    <button type="primary" @click="test2()">test2</button>
    <button type="primary" @click="test3()">test3</button>
    <button type="primary" @click="getusb()">获取打印机列表</button>
    <button type="primary" @click="initPrintDevice()">初始化打印</button>
    <button type="primary" @click="printText()">printText</button>
    <button type="primary" @click="printText2()">printText</button>
    <button type="primary" @click="openDrawerCmd()">打开钱箱</button>
    <button type="primary" @click="printOrder()">打印订单</button>
  </div>
</template>

<script>
  // 获取 module 
  var printModule = uni.requireNativePlugin("zantprint-PrintModule")
  export default {
    onLoad() {

    },
    methods: {
      getDevicesId() {
        uni.showToast({
          title:'getDevicesId'
        })
        // 获取设备号
        printModule.getDevicesId((res)=>{
          if(res.status==1){
            uni.showModal({
              content:res.data.deviceid
            })
          }else{
            uni.showToast({
              title:res.message
            })
          }
        })
      },
      getusb(){
        printModule.getAllUsbDevice((res)=>{
          if(res.status==1){
            uni.showModal({
              content:JSON.stringify(res.data)
            })
          }else{
            uni.showToast({
              title:res.message
            })
          }
        })
      },
      initPrintDevice(){
        // 初始化打印机
        printModule.initPrintDevice({
          "vendorId": 1046,
          "productId": 20497
        },(res)=>{
          if(res.status==1){
            uni.showModal({
              content:res.message
            })
          }else{
            uni.showModal({
              content:res.message
            })
          }

        })
      },
      printText(){
        printModule.printText('测试打印文字')
        uni.showModal({
          content: 'ok'
        })
      },
      printText2(){
        printModule.printText2('测试打印文字',(res)=>{
          uni.showModal({
            content: res.message
          })
        })
      },
      openDrawerCmd(){
        printModule.openDrawerCmd((res)=>{
          uni.showModal({
            content: JSON.stringify(res)
          })
        })
      },
      test2(){
        let result = printModule.test2({"key":'测试打印文字'})
        uni.showModal({
          content: JSON.stringify(result)
        })
      },
      test3(){
        let result = printModule.test3("测试打印文字")
        uni.showModal({
          content: result
        })
      },
      printOrder(){
          // 打印订单
        printModule.printOrder({
          "merchname": "综合超市",
          "opuser": "臭猪",
          "time": "2023-12-08 20:20:20",
          "ordersn": "XX0000000222223333224556677",
          "total_money": "600.00",
          "cash_money": "10.00",
          "credit8_money": "500.00",
          "credit7_money": "40.00",
          "wx_money": "60.00",
          "goodslist": [
            {
              "name": "收银系统",
              "num": "20",
              "price": "10.00",
              "total": "200.00",
            },
            {
              "name": "收银系统",
              "num": "20",
              "price": "10.00",
              "total": "200.00",
            },
            {
              "name": "收银系统",
              "num": "20",
              "price": "10.00",
              "total": "200.00",
            }
          ]
        },(res)=>{
          uni.showModal({
            content: '打印成功'
          })
        })
      }
    }
  }
</script>

隐私、权限声明

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

android.permission.USB_PERMISSION android.hardware.usb.host android.permission.READ_PRIVILEGED_PHONE_STATE android.permission.ACCESS_WIFI_STATE android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION

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

插件不采集任何数据

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

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问