更新记录

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

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


基础功能

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()

隐私、权限声明

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

<uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

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

插件不采集任何数据

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

许可协议

作者未提供license.md

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