更新记录
1.0.4(2022-10-12)
- 增加支持 iOS armv7 架构
- 修复iOS依赖出错的问题
1.0.3(2022-10-09)
- 修复iOS SDK头文件被加密
1.0.2(2022-10-08)
- 统一Android、iOS返回码
- 修复插件名称设置设置出错
- 添加iOS插件缺少的库
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 15 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
基础功能
1.1 搜索打印机
/**
* 搜索打印机
* @callback callback 蓝牙回调
* 数组数据 [{"name": "", "address": "", rssi:""}]
* // iOS 只有 name 字段
* /
getBluetoothDevices(callback)
1.2 连接打印机
/**
* 连接打印机
* @param {{}} data 连接参数(iOS 使用蓝牙名称连接,Android 使用蓝牙地址连接)
* @param {string} data.address 打印机蓝牙MAC地址
* @param {string} data.name 打印机蓝牙名称
* @callback callback 回调
* {"code": 0} // 0: 成功, -1: 失败
* /
openPrinterByDevice(data, function(r) {
})
1.3 断开连接
close()
1.4 异常回调
/**
* 监听当前任务打印异常回调
* @callback callback 异常回调
* {"code": errorCode} // 错误类型
* 异常类型:
1-盒盖打开
2-缺纸
3-电量不足
4-电池异常
5-手动停止(按键)
6-数据错误
7-温度过高
8-出纸异常
9-正在打印
10-没有检测到打印头
11-环境温度过低
12-打印头未锁紧
13-未检测到碳带
14-不匹配的碳带
15-用完的碳带
16-不支持的纸张类型
17-纸张类型设置失败
18-打印模式设置失败
19-设置浓度失败
20-写入rfid失败
21-边距设置失败
22-通讯异常
23-打印机连接断开
24-画板参数错误
25-旋转角度错误
26-json参数错误
27-出纸异常(B3S)
28-检查纸张类型
29-RFID标签未进行写入操作
30-不支持浓度设置
* /
didReadPrintErrorInfo(function(r) {
})
1.5 打印进度回调
/**
* 当前任务打印进度回调
* @callback callback 打印进度回调
* {"count": number} // 已打印标签数
* /
didReadPrintCountInfo(function(r) {
})
绘制
2.1 初始化绘制
/**
* 初始化绘制
* @param {{}} data 绘制参数
* @param {number} data.width 画板宽度,单位mm
* @param {number} data.height 画板高度,单位mm
* @param {number} data.rotate (可选)画板旋转角度,默认为0,不旋转。支持的旋转角度 0、90、180。
*/
initDrawingBoard(data)
2.2 绘制文本
/**
* 绘制文本
* @param {{}} data 绘制参数
* @param {number} data.x 元素起始x坐标
* @param {number} data.y 元素起始y坐标
* @param {number} data.width 文本框宽度,单位mm
* @param {number} data.height 文本框高度,单位mm
* @param {string} data.value 绘制文字内容
* @param {number} data.fontSize 字体大小,单位mm
* @param {number} data.roate(可选)画板旋转角度,默认为0,不旋转。支持的旋转角度 0、90、180、270。
* @param {number} data.lineModel 换行方式,
* 1:宽⾼固定,内容⼤⼩⾃适应(字号/字符间距/⾏间距,按⽐例缩放)
* 2:宽度固定,⾼度⾃适应
* 4:宽⾼固定,超出内容直裁切
* 6.宽⾼固定,内容超过预设的宽⾼时⾃动缩⼩
* @param {number} data.letterSpace 字间隔
* @param {number} data.lineSpace ⾏间隔
*/
drawLabelText(data)
2.3 绘制条形码
/**
* 绘制条形码
* @param {{}} data 绘制参数
* @param {number} data.x 元素起始x坐标
* @param {number} data.y 元素起始y坐标
* @param {number} data.width 条码宽度,单位mm
* @param {number} data.height 条码高度,单位mm
* @param {string} data.value 条码内容
* @param {number} data.fontSize 字体大小,单位mm
* @param {number} data.roate(可选)画板旋转角度,默认为0,不旋转。支持的旋转角度 0、90、180、270。
* @param {number} data.codeType 条码类型
* 20:CODE128
* 21:UPC-A
* 22:UPC-E
* 23:EAN8
* 24:EAN13
* 25:CODE93
* 26:CODE39
* 27:CODEBAR
* 28:ITF25
* @param {number} data.textHeight 文本高度
* @param {number} data.textPosition 条码文本位置
* 0: 下方显示
* 1: 上方显示
* 2: 不显示
*/
drawLabelBarCode(data)
2.4 绘制二维码
/**
* 绘制二维码
* @param {{}} data 绘制参数
* @param {number} data.x 元素起始x坐标
* @param {number} data.y 元素起始y坐标
* @param {number} data.width 二维码宽度,单位mm
* @param {number} data.height 二维码高度,单位mm
* @param {string} data.value 二维码内容
* @param {number} data.roate(可选)画板旋转角度,默认为0,不旋转。支持的旋转角度 0、90、180、270。
* @param {number} data.codeType 二维码类型
* 31:QR_CODE
* 32:PDF417
* 33:DATA_MATRIX
* 34:AZTEC
*/
drawLabelQrCode(data)
2.5 绘制线条
/**
* 绘制线条
* @param {{}} data 绘制参数
* @param {number} data.x 元素起始x坐标
* @param {number} data.y 元素起始y坐标
* @param {number} data.width 线条宽度,单位mm
* @param {number} data.height 线条高度,单位mm
* @param {number} data.roate(可选)画板旋转角度,默认为0,不旋转。支持的旋转角度 0、90、180、270。
* @param {number} data.lineType 线条类型,1: 实线 ,2:虚线
*/
drawLabelLine(data)
2.6 绘制形状
/**
* 绘制形状
* @param {{}} data 绘制参数
* @param {number} data.x 元素起始x坐标
* @param {number} data.y 元素起始y坐标
* @param {number} data.height 线条高度,单位mm
* @param {number} data.graphType 图像类型,1: 圆形,2: 椭圆, 3:矩形, 4: 圆角矩形
* @param {number} data.roate(可选)画板旋转角度,默认为0,不旋转。支持的旋转角度 0、90、180、270。
* @param {number} data.cornerRadius 圆角半径,单位mm
* @param {number} data.lineWidth 线条宽,单位mm
* @param {number} data.lineType 线条类型,1: 实线,2: 虚线
*/
drawLabelGraph(data)
2.7 绘制图片
/**
* 绘制图片
* @param {{}} data 绘制参数
* @param {number} data.x 元素起始x坐标
* @param {number} data.width 图片宽度,单位mm
* @param {number} data.height 图片高度,单位mm
* @param {number} data.roate(可选)画板旋转角度,默认为0,不旋转。支持的旋转角度 0、90、180、270。
* @param {number} data.imageProcessingType (可选)处理算法,默认为1
* @param {number} data.imageProcessingValue (可选)阈值,默认127
*/
drawLabelImage(data)
2.8 生成绘制JSON
此接口生成的数据为 printData
接口提交的打印数据。
/**
* 生成绘制内容
* @return {{}} 绘制内容json对象
*/
generateLabelJson()
打印
3.1 设置打印任务
/**
* 设置打印任务
* @param {{}} config
* @param {number} config.totalCount 打印总数
* @param {number} config.density 打印浓度
* @param {number} config.labelType 标签类型
* 1:间隙纸
* 2:黑标纸
* 3:连续纸
* 4:定孔纸
* 5:透明纸
* @param {number} config.printMode 打印模式
* 1:热敏
* 2:热转印
*
* @callback callback 设置打印任务回调
* {'code': 0} // 0: 成功, -1: 失败
*/
startJob(config, function(r) {
if (r.code) {
console.log("startJob success")
} else {
console.log("startJob fail")
}
})
3.2 提交打印数据
/**
* 提交打印数据
* @param {{}} imageJson 打印数据,使用函数 funtion generateLabelJson() 返回的数据
* @param {{}} imageConfig 打印数据参数 >> TODO
* @param {number} imageConfig.width 打印宽度,单位mm
* @param {number} imageConfig.height 打印高度,单位mm
* @param {number} imageConfig.printQuantity 当前数据打印份数
* @param {number} imageConfig.horizontalOffset (可选) 水平偏移,单位mm
* @param {number} imageConfig.verticalOffset (可选)垂直偏移,单位mm
* @param {number} imageConfig.orientation (可选)旋转角度。0、90、180、270。
* @callback callback 数据提交回调
* {'code': 0} // // 0: 成功, -1: 失败
*/
printData(imageJson, imageConfig, function(r) {
if (r.code) {
console.log("printData success")
} else {
console.log("printData fail")
}
})
同一个打印任务中需要打印多页数据时,需要等待上一个打印数据的成功回调再继续发送。
3.3 取消打印
用于打印过程中取消打印
cancelPrint()