更新记录
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:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
插件使用
打印机插件
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>