wwprint
来自于:开发者立即使用
printDefault close createPrintLabel addPrintLabel submitLabel print setBluetoothDevice getBluetoothDeviceList clean 补充说明
概述
打印简介
通过打印机,打印传统标签,用于机房,机架,等资产上面,起到标识的作用,同时可以用在巡检设备等,使得资产在定期维护,维修过程中起到一个良好的标识作用。
模块概述 本模块主要封装了手机Android与iOS系统的打印SDK。实现与打印机通过蓝牙进行通信,传递数据,封装了默认打印的模板,和自定义打印方法,不涉及任何UI操作
打印的流程如下:
- 首先在APICloud模块加载完成中调用对象的初始化方法。
- 设置回调函数。一切打印过程中的交互都由该函数返回。如果不需要回调可以不设置。
- 默认标签打印按照之前的xml传入,调用默认打印方法即可。
- 自定义标签打印分为五步:a、创建标签模板;b、添加标签上的元素;c、提交标签模板;d、调用自定义打印方法; e、重新创建新的标签的时候,需要清理缓存数据。
- 自定义打印的时候需要先进行蓝牙连接,通过相关的方法获取蓝牙列表,然后再将其名称传入连接方法中进行连接。
- 设置打印机对象的时候,请先确保手机蓝牙设备未被占用。否则连接失败。当已有配对打印机连接上的时候,需要先关掉打印之后,再进行与新设备的连接。
- 调用打印图片函数的时候,图片内容以标准的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(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文档之类页面打印。