blePrintHaier

来自于:海尔技术支持立即使用

概述

海尔蓝牙打印简介

blePrintHaier 支持各品牌小票(热敏)打印机,通过向打印机发送指令直接打印,无需安装驱动,支持ios和android系统,本模块由海尔集团提供技术支持。

blePrintHaier 可自定义打印格式,打印二维码,非常适用于打印收银小票、堂食/外卖订单、超市结账单等

模块接口

initManager

初始化蓝牙4.0管理器

initManager(cllback(ret))

params

single

ret:

  • 类型:布尔 true 为单例模式,false为非单例模式;默认为false;
  • 描述:(可选项)则扫描附近的所有支持蓝牙4.0的设备

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    state: 'poweredOn'       //字符串类型;蓝牙4.0设备连接状态,取值范围如下:
                             //poweredOn:设备开启状态 -- 可用状态
                             //poweredOff:设备关闭状态
                             //resetting:正在重置状态
                             //unauthorized:设备未授权状态
                             //unknown:初始的时候是未知的
                             //unsupported:设备不支持的状态
}

示例代码

var ble = api.require('bleHaier');
ble.initManager(function(ret) {
    if (ret.state == "poweredOn") {
        api.alert({ msg: "初始化成功" });
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

scan

开始搜索蓝牙4.0设备,模块内部会不断的扫描更新附近的蓝牙4.0设备信息,可通过 getPeripheral 接口来获取扫描到的设备信息。若要停止扫描则调用 stopScan 接口

scan({params}, callback(ret, err))

params

serviceUUIDs:

  • 类型:数组
  • 描述:(可选项)要扫描的蓝牙4.0设备的服务(service)的 UUID(字符串) 组成的数组,若不传则扫描附近的所有支持蓝牙4.0的设备

clean:

  • 类型:布尔
  • 描述:(可选项)扫描前是否清空已搜索到的记录在本地的外围设备信息
  • 默认:true

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

示例代码

var ble = api.require('bleHaier');
ble.scan({
    serviceUUIDs: ['', '']
}, function(ret) {
    if (ret.status) {
        alert('开始扫描');
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getPeripheral

获取当前扫描到的所有外围设备信息

getPeripheral(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:每发现新设备便会回调当前发现的所有蓝牙4.0设备信息
  • 内部字段:
{
    peripherals:[{ //数组类型;获取到的当前扫描到的蓝牙4.0设备
      manufacturerData:'',  //字符串类型;蓝牙广播的数据;
      uuid: '',    //字符串类型;扫描到的蓝牙设备的 UUID
      name: '',    //字符串类型;扫描到的蓝牙设备的名字
      rssi:        //数字类型;扫描到的蓝牙设备的信号强度,在 iOS 平台上已 deprecated,可通过 getPeripheralRssi 接口获取
    },...]
}

示例代码

var ble = api.require('bleHaier');
ble.getPeripheral(function(ret) {
    if (ret) {
        api.alert({ msg: JSON.stringify(ret) });
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

isScanning

判断是否正在扫描

isScanning(callback(ret))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔类型;是否在扫描,true|false
}

示例代码

var ble = api.require('bleHaier');
ble.isScanning(function(ret) {
    if (ret) {
        alert('正在扫描');
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopScan

停止搜索附近的蓝牙设备

stopScan()

示例代码

var ble = api.require('bleHaier');
ble.stopScan();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

connect

连接指定外围设备。iOS端无超时判断,android端默认有30秒超时判断

connect({params}, callback(ret, err))

params

peripheralUUID:

  • 类型:字符串
  • 描述:要连接的外围设备的 UUID

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
     status: true      //布尔类型;是否连接成功,true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
     code: 1          //数字类型;连接失败时返回错误码,取值范围如下:
                      //-1:未知错误
                      //1:uuid为空
                      //2:未搜索到该蓝牙设备
                      //3:该设备为已连接状态
}

示例代码

var ble = api.require('bleHaier');
ble.connect({
    peripheralUUID: ''
}, function(ret, err) {
    if (ret.status) {
        alert("连接成功!");
    } else {
        alert(err.code);
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

disconnect

断开与指定外围设备的连接

disconnect({params}, callback(ret))

params

peripheralUUID:

  • 类型:字符串
  • 描述:要断开连接的外围设备的 UUID

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
     status: true,       //布尔类型;是否成功断开连接,true|false
     peripheralUUID:''   //字符串类型;断开外围设备的 UUID
}

示例代码

var ble = api.require('bleHaier');
ble.disconnect({
    peripheralUUID: ''
}, function(ret, err) {
    if (ret.status) {
        alert("断开连接成功!");
    }
});

可用性

iOS系统,Android系统

可提供的1.0.2及更高版本

isConnected

判断与指定外围设备是否为连接状态

isConnected({params}, callback(ret))

params

peripheralUUID:

  • 类型:字符串
  • 描述:描述:指定外围设备的 UUID。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,       //布尔类型;是否连接,true|false
    peripheralUUID:''   //字符串类型;外围设备的 UUID
}

示例代码

var ble = api.require('bleHaier');
ble.isConnected({
    peripheralUUID: ''
}, function(ret) {
    if (ret) {
        alert('已连接');
    }
});

可用性

iOS系统,Android系统

可提供的1.0.4及更高版本

print

将打印内容发送到指定地址的打印机(打印机为MAC地址(uuid))注:uuid通过getPeripheral接口获取

print({params})

params

taskList:

  • 类型:JSON数组
  • 描述:(必填项)打印机、打印内容、重复打印次数组成的JSON对象数组
  • 内部字段:
{
   taskList:
          [
              {
                  printerAddr: uuid,
                  printerEncoding:'gbk',
                  type:1,
                  content: content,
                  tscSetting:{
                      width:40,
                      height:30,
                      gap:2
                  },
                  keepAlive:true,
                  cmd:[25,23,0],
                  copyNum: 1
              }
          ]
}

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   result:     'ok'   //字符串;ok表示调用成功
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
     msg:'',       //错误信息的汇总描述
}

示例代码

    var content =  "<CA>海尔测试打印</CA><BR>\n" +
                    "名称      单价  数量 金额<BR>\n" +
                    "--------------------------------<BR>\n" +
                    "海尔      1.0    1   1.0<BR>\n" +
                    "海尔冰箱     10.0   10  10.0<BR>\n" +
                    "海尔冰箱彩电  10.0   100 100.0<BR>\n" +
                    "海尔海尔海尔海 15.0   1   15.0<BR>\n" +
                    "备注:快点送到<BR>\n" +
                    "--------------------------------<BR>\n" +
                    "合计:xx.0元<BR>\n" +
                    "送货地点:xxxxxxxxxxxxxxxxx<BR>\n" +
                    "联系电话:138000000000<BR>\n" +
                    "订餐时间:2011-01-06 19:30:10<BR>\n" +
                    "--------------------------------<BR>\n" +
                    "<QR>(300)www.apicloud.com</QR><BR>\n" +
                    "   <BR>\n" +
                    "----------<CUT>----------<BR>\n" +
                    "   <BR>";

    var param =
      {
          taskList:
          [
              {
                  printerAddr: uuid,
                  printerEncoding:'gbk',
                  type:1,
                  content: content,
                  tscSetting:{
                      width:40,
                      height:30,
                      gap:2
                  },
                  keepAlive:true,
                  cmd:[25,23,0],
                  copyNum: 1
              }
          ]
      };
  var printHaier = api.require('printHaier');      
  printHaier.print(param,function(ret,err){
          if (ret.status) {
                alert("打印成功!");
            } 
  });

可用性

Android系统

可提供的1.0.0及更高版本

print

将打印内容发送到指定名称的打印机(蓝牙打印机名称(name)),注:name通过getPeripheral接口获取

params

taskList:

  • 类型:JSON数组
  • 描述:(必填项)打印机、打印内容、重复打印次数组成的JSON对象数组
  • 内部字段:
{
       {
         printerAddr: 'Printer_B937',
         content:content

       }
}

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   result:     'ok'   //字符串;ok表示调用成功
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
     msg:''      //错误信息的汇总描述
}

示例代码

var content = "<CA>测试打印</CA><BR>\n" +
"名称        单价  数量 金额<BR>\n" +
"番       1.0    1   1.0<BR>\n" +
"番       1.0    1   1.0<BR>\n" +
"<C>谢谢光临!</C><BR>\n"+
"------------------------<BR>\n"+
"<QR>http://www.apicloud.com/<QR>\n"+
            "------------------------<BR>\n";

var printHaier = api.require('printHaier');     
Bluetooth.print({
 printerAddr: 'Printer_B937',
 uuid:'8C6874BB-626E-272F-D5C8-57A1C4F80E61',
 content:content
},function(ret, err){
    if (ret.status) {
        alert("打印成功!");
    } 
});

可用性

iOS系统

可提供的1.0.0及更高版本