wwprint

概述

打印简介

通过打印机,打印传统标签,用于机房,机架,等资产上面,起到标识的作用,同时可以用在巡检设备等,使得资产在定期维护,维修过程中起到一个良好的标识作用。

插件概述 本插件主要封装了手机Android与iOS系统的打印SDK。实现与打印机通过蓝牙进行通信,传递数据,封装了默认打印的模板,和自定义打印方法,不涉及任何UI操作 打印的流程如下:

  1. 首先在YonBuilder移动开发插件加载完成中调用对象的初始化方法。
  2. 设置回调函数。一切打印过程中的交互都由该函数返回。如果不需要回调可以不设置。
  3. 默认标签打印按照之前的xml传入,调用默认打印方法即可。
  4. 自定义标签打印分为五步:a、创建标签模板;b、添加标签上的元素;c、提交标签模板;d、调用自定义打印方法; e、重新创建新的标签的时候,需要清理缓存数据。
  5. 自定义打印的时候需要先进行蓝牙连接,通过相关的方法获取蓝牙列表,然后再将其名称传入连接方法中进行连接。
  6. 设置打印机对象的时候,请先确保手机蓝牙设备未被占用。否则连接失败。当已有配对打印机连接上的时候,需要先关掉打印之后,再进行与新设备的连接。
  7. 调用打印图片函数的时候,图片内容以标准的Base64编码后再字符串传入。

插件使用攻略

使用插件之前,先保证打印机正常,且处于开机状态,否则将调用接口会返回失败。iOS系统与Android系统在蓝牙搜索与连接上面有区别。Android蓝牙搜索的时候只会获取配对列表中的对象,因此必须打印机必须在手机配对列表中;而iOS则不需要,因蓝牙厂家的问题,在iOS手机的蓝牙列表中无法进行配对,所以只能通过集成插件之后,在app内部进行搜索连接

不能同时使用的插件:FNScanner

插件接口

printDefault

打印默认标签模板。

printDefault({par},callback(ret,err))

##par

msg:

  • 类型:字符串类型
  • 默认:空
  • 描述:按照文档描述传入对应的xml,即可完成默认打印。

callback(ret,err)

ret:

  • 类型:JSON类型。
  • 默认:无
  • 描述:相关信息返回
  • 内部字段:
    {
        states://BOOL值,返回执行过程中的成功或者失败
        message://String类型,返回执行过程中的相关信息
        data://状态码,当为获取蓝牙列表的时候返回类型是String,其余返回均为数值类型。
    }

err:

  • 类型:布尔值
  • 内部字段:
{true;//布尔型;true||false,该参数表示原生回调成功}

##代码示例

    var printUtils=api.require('wwprint');
    var str={msg:'<?xml version=\'1.0\' encoding=\'utf-8\' ?><Data><Print><QRCode>170510030035966978751</QRCode><CodeType>OLT_SB</CodeType><Text>OLT名称:和林县-富裕1号4层综合机房</Text><Text>OLT侧上行端口:和林县-富裕1号4层综合机房</Text></Print></Data>'};
    printUtils.printDefault(str,function(ret,err){
        alert(ret.message);
    });

可用性

Android系统,iOS系统

可提供1.0.0及更高的版本

close

关闭连接。断开与打印机的连接。参数无,回调无。

close();

##代码示例

var printUtils=api.require('wwprint');
printUtils.close();

补充说明

在与打印机连接的时候调用有效,当结束当前窗体时候,建议关闭连接,否则在连接未被系统回收时候,再次调用打印会出现连接失败。无法正常打印。

可用性

Android系统,iOS系统

可提供1.0.0及更高的版本

createPrintLabel

创建一张标签模板。

createPrintLabel({par},callback(ret,err));

##par

width:

  • 类型:数值类型
  • 描述:标签的宽度 数值类型 计算方式:标签的实际宽度(毫米)*8
  • 默认值:无

height:

  • 类型:数值类型
  • 描述:标签的高度 数值类型:计算方式上同
  • 默认值:无

angle:

  • 类型:字符类型
  • 描述:旋转角度。
  • 默认值:UIImageOrientationRight
  • 取值范围
    • UIImageOrientationRight (向右旋转90°)
    • UIImageOrientationDown (向右旋转180°)
    • UIImageOrientationLeft (向右旋转270°)

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:返回相关信息
  • 内部字段:
    {
        states://BOOL值,返回执行过程中的成功或者失败
        message://String类型,返回执行过程中的相关信息
        data://状态码,当为获取蓝牙列表的时候返回类型是String,其余返回均为数值类型。
    }

err:

  • 类型:布尔值
  • 内部字段:
{true;//布尔型;true||false,该参数表示原生回调成功}

##代码示例

var printUtils=api.require('wwprint');
var data={ 
           width:600,
           height:200,
           andle:90
         }
printUtils.createPrintLabel(data,function(ret,err){
    alert(ret.message);
});
    

可用性

Android系统,iOS系统

可提供1.0.0及更高的版本

addPrintLabel

往创建的标签上面添加元素。可以是文字,二维码,条码,线条,图片。

addPrintLabel({par},callback(ret,err));

##par

content:

  • 类型:字符串类型
  • 描述:打印内容 类型是String (文字,二维码,条码,图片的base64编码)

positionX:

  • 类型:数值类型
  • 描述:在标签上面的X坐标
  • 默认:0
  • 取值范围:
    • 0

positionY:

  • 类型:数值类型
  • 描述:在标签上面的y坐标
  • 默认:0
  • 取值范围:
    • 0

width:

  • 类型:数值类型
  • 描述:所占标签的宽度 单位为象素
  • 默认:0
  • 取值范围:
    • 0

height:

  • 类型:数值类型
  • 描述:所占标签的高度 单位为象素
  • 默认:0
  • 取值范围:
    • 0

fountSize:

  • 类型:数值类型
  • 描述:文字类型时候的字体大小
  • 默认:0
  • 取值范围:
    • 0

degrees:

  • 类型:数值类型
  • 描述:元素旋转角度。
  • 默认:0
  • 取值范围:
    • 0~360

contentType:

  • 类型:字符串类型
  • 描述:指定内容的类型 详情见补充说明。
  • 默认:CONTENT_TEXT
  • 取值范围:
    • CONTENT_TEXT(将content作为打印内容,并当所给宽高大于实际宽高的时候,水平&垂直居中)
    • CONTENT_TEXT_VERTICAL(将content作为打印内容,并当所给高度大于实际高度的时候,垂直居中)
    • CONTENT_TEXT_HORIZONTAL(将content作为打印内容,并当所给宽度大于实际宽度的时候,水平居中)
    • CONTENT_ERCODE(将content作为二维码内容,此时大小仅取宽度有效)
    • CONTENT_BARCODE(将content作为条码内容)
    • CONTENT_LINE(将该元素对象视为线条,content参数无效。并以positionX,positionY为起点坐标,width,height为终点坐标,进行画线。degrees参数作为线条的粗细,其余参数无效)
    • CONTENT_IMG(将content内容视为图片的标准base64编码内容处理,此时fountSize无效)

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:返回相关信息
  • 内部字段:
    {
        states://BOOL值,返回执行过程中的成功或者失败
        message://String类型,返回执行过程中的相关信息
        data://状态码,当为获取蓝牙列表的时候返回类型是String,其余返回均为数值类型。
    }

err:

  • 类型:布尔值
  • 内部字段:
{true;//布尔型;true||false,该参数表示原生回调成功}

##代码示例

var printUtils = api.require('wwprint');
            var data = {
                content : '测试打印内容',
                positionX : 20,
                positionY : 20,
                width : 460,
                height : 40,
                fountSize : 30,
                degrees : 0,
                contentType : 'CONTENT_TEXT'
            };
            printUtils.addPrintLabel(data, function(ret, err) {
                alert(ret.message);
            });
    

可用性

Android系统,iOS系统

可提供1.0.0及更高的版本

submitLabel

提交一张创建的标签。此方法无参数,回调可以不加。只有在创建完成之后提交才有效,否则会回调模板为创建,如果没有设置回调,将不会有任何返回信息。

submitLabel(callback(ret,err));

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:返回相关信息
  • 内部字段:
    {
        states://BOOL值,返回执行过程中的成功或者失败
        message://String类型,返回执行过程中的相关信息
        data://状态码,当为获取蓝牙列表的时候返回类型是String,其余返回均为数值类型。
    }

err:

  • 类型:布尔值
  • 内部字段:
{true;//布尔型;true||false,该参数表示原生回调成功}

##代码示例

var printUtils=api.require('wwprint');
printUtils.submitLabel();
    

补充说明

提交模板的时候,必须先创建模板 否则返回失败。

可用性

Android系统,iOS系统

可提供1.0.0及更高的版本

print

自定义方法打印。无参数,不需要状态可以不设置回调。只有在设置蓝牙连接对象和自定义模板创建并提交之后才有用。

print(callBack(ret,err));

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:返回相关信息
  • 内部字段:
    {
        states://BOOL值,返回执行过程中的成功或者失败
        message://String类型,返回执行过程中的相关信息
        data://状态码,当为获取蓝牙列表的时候返回类型是String,其余返回均为数值类型。
    }

err:

  • 类型:布尔值
  • 内部字段:
{true;//布尔型;true||false,该参数表示原生回调成功}

##代码示例

var printUtils=api.require('wwprint');
printUtils.print(function(ret,err){
    api.toast({msg:ret.message});
});
    

补充说明

自定义打印是一个异步的过程,该方法不会出现等待打印完成的界面。需要自己提供等待界面,且在未返回打印状态的时候,继续调用无效。

可用性

Android系统,iOS系统

可提供1.0.0及更高的版本

setBluetoothDevice

设置蓝牙连接对象。如果不需要返回结果,可以不用设置回调方法。

setBluetoothDevice({par},callback(ret,err));

##par

name:

  • 类型:字符串类型;
  • 描述:蓝牙名称

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:返回相关信息
  • 内部字段:
    {
        states://BOOL值,返回执行过程中的成功或者失败
        message://String类型,返回执行过程中的相关信息
        data://状态码,当为获取蓝牙列表的时候返回类型是String,其余返回均为数值类型。
    }

err:

  • 类型:布尔值
  • 内部字段:
{true;//布尔型;true||false,该参数表示原生回调成功}

示例代码

var printUtils=api.require('wwprint');
var str={name:'P50---XXX'};
printUtils.setBluetoothDevice(str,function(ret,err){
    alert(ret.message);
})

补充说明

设置蓝牙连接对象的时,如果已经连接上了,返回连接失败。所以需要保证设备处于未连接状态。

可用性

Android系统,iOS系统

可提供1.0.0及更高的版本

getBluetoothDeviceList

获取搜索到的蓝牙设备。多个设备以“,”分割。无参数。

getBluetoothDeviceList(callback(ret,err));

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:返回相关信息
  • 内部字段:
    {
        states://BOOL值,返回执行过程中的成功或者失败
        message://String类型,返回执行过程中的相关信息
        data://状态码,当为获取蓝牙列表的时候返回类型是String,其余返回均为数值类型。
    }

err:

  • 类型:布尔值
  • 内部字段:
{true;//布尔型;true||false,该参数表示原生回调成功}

示例代码

var printUtils=api.require('wwprint');
printUtils.getBluetoothDeviceList(function(ret,err){
    alert(ret.data);
});
    

补充说明

Android系统中,该方法返回已配对列表的的蓝牙设备名称,暂不支持未配对的设备搜索。

iOS系统中,会搜索周围蓝牙。是一个异步过程。且因蓝牙插件原因,无法直接在手机设置里面进行配对,只能使用app内部进行连接通信。

可用性

Android系统,iOS系统

可提供1.0.0及更高的版本

clean

无参数。主要是清理之前创建的标签模板。如果不调用,则之前创建的标签将会被保存,直到该对象消失。

clean(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:返回相关信息
  • 内部字段:
    {
        states://BOOL值,返回执行过程中的成功或者失败
        message://String类型,返回执行过程中的相关信息
        data://状态码,当为获取蓝牙列表的时候返回类型是String,其余返回均为数值类型。
    }

err:

  • 类型:布尔值
  • 内部字段:
{true;//布尔型;true||false,该参数表示原生回调成功}

示例代码

var printUtils=api.require('wwprint');
printUtils.clean();
    

补充说明

如果从未创建过标签模板,调用该方法也会返回成功。

可用性

Android系统,iOS系统

可提供1.0.0及更高的版本

补充说明

  • 插件使用打印机仅支持品胜P50、P30、H50等。
  • 插件仅支持移动端Android和iOS系统。
  • 插件不支持文件类型的打印。
  • 所有打印仅按照上述打印方法使用。
  • 插件支持的为小标签打印,不支持打印web,word文档之类页面打印。
是否仍需要帮助? 请保持联络!
最后更新于 2024/04/24