更新记录

1.0.1(2020-04-12)

1.同步方法改为异步方法 2.更换connected方法为 connect({name:'',address:''},callback),callback 返回 {code:0,message:'连接成功',data:连接的设备信息} 3.可以直接连接设备打印 4.部分逻辑优化

1.0.0(2019-12-17)

Changelog: 1.0.0 1.打包Android和iOS原生SDK 2.暴露打印接口(除打印图片) 3.使用同步方式


平台兼容性

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


启锐 QR-396A QR-380 蓝牙打印机 UNI-APP原生插件 本插件在QR-386A设备上测试通过,并未在QR-380上测试。

使用方法:

// 引用插件
const printer = uni.requireNativePlugin('YHTech-QR38XPrinter'); 
let device = {} //注意不能为null IOS会崩溃

// 调用 connect方法判断蓝牙打印机是否已连接,根据返回值进行操作
// 注意:直接点取消,不选择设备,会无法进入回调函数
printer.connect(device, ({ code, message, data }) => {
  console.log(`device:${JSON.stringify(device)} 蓝牙连接返回:code=${code},message=${message},data=${JSON.stringify(data)}`)
  if (code !== 0) {
    // 连接失败,具体原因可以参考message返回
    return
  }

  // 注意 data = { name:'', address:''}
  // IOS 和 Android 的Address并不一致
  // data指保存后,下次直接connect(data,callback)可以直接连接设备使用
  device = data 

  // 设置纸张尺寸
  printer.pageSetup(759,500)

  // 打印文本(示例)
  printer.drawText(10,10,'测试信息',1,0,0,0,0)
  // 打印条码(示例)
  printer.drawBarCode(40,40,'12330403',0,0,2,40)
  // 打印二维码(示例)
  printer.drawQrCode(120,120,'https://www.example.cn',0,4,20)

  // 通知打印机打印
  printer.print(0,0)

})

整个流程很简单,但是有以下注意点:

蓝牙设备连接错误,需要手工去系统的蓝牙菜单设置项,取消连接。 必须先 pageSetup ,然后执行相应画图语句,最后调用print方法实际打印至纸张,如果print不调用,则不会打印。 画图语句不要有图形重叠,否则打印机设备会直接断电关机!!! 相关接口: 接口详细说明请参照设备厂商提供的SDK包!

boolean connect({name:'', address:''}, callback) 连接打印机

pageSetup(int pageWidth, int pageHeight) 设置打印纸张大小(打印区域)的大小

print(int horizontal, int skip) 页模式下打印

drawBarCode(int start_x, int start_y, String text, int type, int rotate, int linewidth, int height) 打印一维条码

drawBox(int lineWidth, int top_left_x, int top_left_y, int bottom_right_x, int bottom_right_y) 打印边框

drawLine(int lineWidth, int start_x, int start_y, int end_x, int end_y, boolean fullline) 打印线条

drawQrCode(int start_x, int start_y, String text, int rotate, int ver, int lel) 打印二维码

drawText(int text_x, int text_y, String text, int fontSize, int rotate, int bold, boolean reverse, boolean underline) 打印文本

drawText2(int text_x, int text_y, int width, int height, String text, int fontSize, int rotate, int bold, boolean underline, boolean reverse) 打印文本框文字

隐私、权限声明

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

蓝牙

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

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

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