更新记录
1.0.0(2023-05-10)
研科数码icod打印机
- 支持USB、串口、Wi-Fi、蓝牙连接
- 打印文本、图片、条码、二维码等
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择
前言
研科数码icod 打印机
功能
var icodPrint = uni.requireNativePlugin("wrs-icodPrint");
方法
- 注册USB监听
icodPrint.registerReceiver((resp) => {
var action = resp.action;
switch (action) {
case "android.hardware.usb.action.USB_DEVICE_ATTACHED":
this.showMsg("插USB");
break;
case "android.hardware.usb.action.USB_DEVICE_DETACHED":
this.showMsg("拔USB");
break;
default:
break;
}
});
- 初始化
icodPrint.initUtil({
enable: true
});
// 增加日志文件,true开启日志输出
icodPrint.initPrinter({
enable: true
});
// // 添加终端日志
icodPrint.initLogger();
- USB连接
var params = {};
// params.deviceId = "xx"; // 如果不传deviceId会自动获取默认的,如果需要传deviceId, deivceId通过getUSBDevices接口获取
icodPrint.connectUSB(params, (resp)=>{
var code = resp.code;
if(code == 0) {
this.showMsg("连接成功");
} else {
this.showMsg("连接失败");
}
});
- 串口连接
var params = {};
params.path = "/dev/ttyS3"; // 通过getSerialPorts接口获取
params.baudRate = 115200; // 波特率
params.flowControl = 0; // 0(不使用流控)、1(硬件流控RTS/CTS)、2(软件流控XON/XOFF)
icodPrint.connectSerialPort(params, (resp)=>{
var code = resp.code;
if(code == 0) {
this.showMsg("连接成功");
} else {
this.showMsg("连接失败");
}
});
- 蓝牙连接
var params = {};
params.pin = "0000"; // 厂自动配对的
params.mac = "xxx"; // 打印机mac地址
icodPrint.connectBluetooth(params, (resp)=>{
var code = resp.code;
if(code == 0) {
this.showMsg("连接成功");
} else {
this.showMsg("连接失败");
}
});
- wifi连接
var params = {};
params.ip = "192.168.1.0";
params.port = 9100;
icodPrint.connectWifi(params, (resp)=>{
var code = resp.code;
if(code == 0) {
this.showMsg("连接成功");
} else {
this.showMsg("连接失败");
}
});
- UsbNative连接
var params = {};
icodPrint.connectUsbNativeAPI((resp)=>{
var code = resp.code;
if(code == 0) {
this.showMsg("连接成功");
} else {
this.showMsg("连接失败");
}
});
- 获取USB设备列表
icodPrint.getUSBDevices((resp)=>{
var devices = resp.devices;
})
- 获取串口列表
icodPrint.getSerialPorts((resp)=>{
var devices = resp.devices;
})
- 断开连接
icodPrint.disconnect((resp)=>{
var code = resp.code;
if(code == 0) {
this.showMsg("断开成功");
} else {
this.showMsg("断开失败");
}
});
- 判断是否已经连接
icodPrint.isConnect((resp)=>{
var isConnect = resp.isConnect;
});
- 获取状态
icodPrint.getStatus((resp)=>{
var status = resp.status;
this.showMsg("status:" + status);
});
- 自检页
icodPrint.selfTestPage((resp)=>{
var status = resp.status;
if(status == 0) {
this.showMsg("操作成功");
} else {
this.showMsg("操作失败");
}
});
- 打印(如需更多API请联系作者)
var data = [];
data.push({
type: "printString",
value: "测试打印"
});
data.push({
type: "printFeed"
});
data.push({
type: "setAlignMode",
value: 2
});
data.push({
type: "printString",
value: "测试完成!\n"
});
data.push({
type: "fontSizeSet",
value: 2
});
data.push({
type: "printString",
value: "测试完成!\n"
});
data.push({
type: "chineseFontSet",
value: 2
});
data.push({
type: "printString",
value: "测试完成!\n"
});
data.push({
type: "smallFontSizeSet"
});
data.push({
type: "printString",
value: "测试完成!\n"
});
data.push({
type: "printFeed"
});
data.push({
type: "cutPaper",
m: 66,
n: 0
});
var params = {};
params.data = data;
icodPrint.print(params, (resp)=> {
var code = resp.code;
if(code == 0) {
this.showMsg("打印完成");
} else {
this.showMsg("打印失败");
}
});
打印字符串
{
type: "printString",
value: "xxx"
}
对齐方式
{
type: "setAlignMode",
value: 1 // 0 为左对齐 ,1 为居中对齐,2 为右对齐
}
字体大小
{
type: "fontSizeSet",
value: 1 //
}
小字体
{
type: "smallFontSizeSet"
}
汉字模式
{
type: "chineseFontSet",
value: 4 // 0 为禁止 4 允许倍宽 8 允许倍高 128 允许下划线
}
设置字体倍宽倍高的 设定字符大小
{
type: "setCharSize",
hsize: 0, // 0-7(正常为 0)
vsize: 0 // 0-7(正常为 0)
}
在页模式下选择打印方向
{
type: "pageSelectDirection",
value: 0 // 0 从左到右 1 从底到上 2 从右到左 3 从上到下
}
设置浓度
{
type: "setPrintColorSize",
value: 1 // 仅支持 1-4 浓度 一般字体加重的浓度
}
打印换行
{
type: "printFeed"
}
发送指令
{
type: "sendOrder",
value: "FAFB"
}
打印条码
{
type: "sendOrder",
value: "1D4802"
},
{
type: "setBarCodeWidth",
value: 3 // [2-16] 我方打印机范围为 2-6 通用的打印机 2-16 所以有些值不管用
},
{
type: "setBarCodeHeight",
value: 120 // [0-255],默认为 162
},
{
type: "printBarCode",
value: "1234567890",
m: 73 // // 使用条码系统类型
}
打印二维码
{
type: "printQRCode",
value: "1234567890",
modeSize: 10, // 设置条码大小(1FAIL6) 默认为 6
isCut: false // 打印二维码后是否切纸
}
打印光栅位图
{
type: "printRasterBitmap",
image: {
type: "url",
value: "/xaasdf/asdf/aa.png" // 本地绝对路径,不能以file开头
}
toGray: false // 非必填
}
钱箱
{
type: "openCashDrawer",
n: 0, // 0 pin2 上输出 1 pin5 上输出
t1: 100, // 开启时间 t1*2
t2: 200 // 关闭时间 t2*2
}
切纸,选择裁纸模式
{
type: "cutPaper",
m:66, // 66 (保留一点不切)
n: 0
}
全切
{
type: "fullCut"
}
半切
{
type: "halfCut"
}
设定/解除粗体打印
{
type: "setEmphasizedMode",
value: 0 // 最低位有效:1 为设定 0 位解除
}
设定/解除下划线
{
type: "setEnableUnderLine",
value: 0 // 最低位有效:1 为设定 0 位解除
}
设置/解除顺时针 90 °旋转
{
type: "setRotate",
value: 0 // 0,48 解除 1,49 设置
}
- 固件升级
var params = {};
params.filePath = "/xxx/aaa/xxx/";
icodPrint.updateFirmware(params, (resp)=>{
var code = resp.code;
if(code == 0) {
var progress = resp.progress;
if(progress == 100) {
this.showMsg("升级完成");
} else {
this.showMsg("升级进度:" + progress);
}
} else {
this.showMsg("升级错误");
}
});
支持定制,联系方式 QQ:252797991