敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多。
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20250507.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
♦ 珠海芯烨电子
♦ 芯烨官方 SDK 参考文档
蓝牙状态及权限管理
初始化
• 其他接口之前应调用 init 初始化打印服务,只需调用一次。
jsBridge.xprinter.init(function(success, res) {
alert(success ? "初始化成功" : "失败\n" + JSON.stringify(res));
});
设备/连接/断开 SDK文档
jsBridge.xprinter.checkLinkedState(function(success, data) {
alert(success ? "已连接" : "未连接");
});
address:
jsBridge.xprinter.connectBtPort({
//蓝牙MAC地址
address: "DC:0D:30:A0:6A:A0"
}, function(success, res) {
alert(success ? "成功" : "失败\n" + JSON.stringify(res));
});
address:
jsBridge.xprinter.connectUsbPort({
//USB
address: "usb0"
}, function(success, res) {
alert(success ? "成功" : "失败\n" + JSON.stringify(res));
});
address:
port:
jsBridge.xprinter.connectNetPort({
//IP地址
address: "192.168.0.1",
//端口号
port : 9100
}, function(success, res) {
alert(success ? "成功" : "失败\n" + JSON.stringify(res));
});
jsBridge.xprinter.disconnectCurrentPort(function(success, res) {
alert(success ? "成功" : "失败\n" + JSON.stringify(res));
});
jsBridge.xprinter.disconnetNetPort(function(success, res) {
alert(success ? "成功" : "失败\n" + JSON.stringify(res));
});
jsBridge.xprinter.getBtAvailableDevice(function(success, res) {
alert(JSON.stringify(res));
});
jsBridge.xprinter.onDiscovery(function(success, res) {
alert(JSON.stringify(res));
});
发送数据到打印机
jsBridge.xprinter.write({
//16进制字符串,打印指令及数据
data: ""
}, function(success, res) {
if (!success) {
alert(JSON.stringify(res));
}
});
jsBridge.xprinter.writeSendData({
//16进制字符串数组,打印指令及数据
datas: [
]
}, function(success, res) {
if (!success) {
alert(JSON.stringify(res));
}
});
jsBridge.xprinter.writeDataByUSB({
//16进制字符串数组,打印指令及数据
datas: [
]
}, function(success, res) {
if (!success) {
alert(JSON.stringify(res));
}
});
打印指令
仅适用于条码打印机系列,详情请参考 指令说明。
jsBridge.xprinter.writeTSC({
//打印图片
cmds: [
{
//清除缓冲
cmd: "cls",
arg: []
},
{
//写入图片
//图片参数为 Base64 编码,这是一个笑脸
cmd: "bitmap",
arg: [ 20, 10, 0, "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", "Threshold" ]
},
{
//打印1份
cmd: "print",
arg: [ 1 ]
}
]
}, function(success, res) {
if (!success) {
alert(JSON.stringify(res));
}
});
/*
1.支持的指令集请参考打印设备的【官方文档】;
2.指令使用说明
{
//指令列表
cmds: [
//单个指令包括指令名称和参数
{
cmd: "", //指令名称,即文档里面的方法名称,注意区分大小写
arg: [] //指令参数,即对应的方法参数,注意参数顺序和类型需与文档一致
//Bitmap 图片类型请使用图片的 Base64 编码字符串
//BmpType,AlignType 枚举类型请使用枚举名称字符串
//byte[] 二进制数组请使用16进制字符串表示
},
...
]
}
*/
jsBridge.xprinter.writeTSC({
//指令列表
cmds: [
{
//清除缓冲
cmd: "cls",
arg: []
},
{
//设置标签纸大小
cmd: "sizeBymm",
arg: [ 50, 30 ]
},
{
//设置间隙
cmd: "gapBymm",
arg: [ 2, 0 ]
},
{
//线条
cmd: "bar",
arg: [ 10, 10, 200, 3 ]
},
{
//条码
cmd: "barCode",
arg: [ 10, 45, "128", 100, 1, 0, 2, 2, "abcdef12345" ]
},
{
//文字
//如需打印双引号 " 应转为 \["],js 字符串转义为 \\[\"]
cmd: "text",
arg: [ 220, 10, "TSS24.BF2", 0, 1, 1, "这是测试文本\\[\"] ABC123" ]
},
{
//打印1份
cmd: "print",
arg: [ 1 ]
}
]
}, function(success, res) {
if (!success) {
alert(JSON.stringify(res));
}
});
address:
//某些型号的打印机可能会出现接口没响应的情况
//建议打印前都重连一下设备
jsBridge.xprinter.connectBtPort({
//蓝牙MAC地址
address: "DC:0D:30:A0:6A:A0"
}, function(success, res) {
if (success) {
jsBridge.xprinter.writeTSC({
//指令列表
cmds: [
{
//清除缓冲
cmd: "cls",
arg: []
},
{
//条码
cmd: "barCode",
arg: [ 10, 45, "128", 100, 1, 0, 2, 2, "abcdef12345" ]
},
{
//打印1份
cmd: "print",
arg: [ 1 ]
}
]
}, function(success, res) {
if (!success) {
alert("打印失败 " + JSON.stringify(res));
}
});
} else {
alert("连接打印机失败");
}
});
详情请参考 指令说明。
jsBridge.xprinter.writePos58({
cmds: [
{
//初始化打印机
cmd: "initializePrinter",
arg: []
},
{
//设置绝对打印位置
cmd: "setAbsolutePrintPosition",
arg: [ 50, 0 ]
},
{
//字体大小
cmd: "selectCharacterSize",
arg: [ 17 ]
},
{
//打印文字
cmd: "text",
arg: [ "商品" ]
},
{
//设置绝对打印位置
cmd: "setAbsolutePrintPosition",
arg: [ 250, 0 ]
},
{
//打印文字
cmd: "text",
arg: [ "价格" ]
},
{
//打印并换行
cmd: "printAndFeedLine",
arg: [ ]
},
{
//打印并换行
cmd: "printAndFeedLine",
arg: [ ]
},
{
//初始化打印机
cmd: "initializePrinter",
arg: []
},
{
//设置绝对打印位置
cmd: "setAbsolutePrintPosition",
arg: [ 30, 0 ]
},
{
//打印文字
cmd: "text",
arg: [ "黄焖鸡" ]
},
{
//设置绝对打印位置
cmd: "setAbsolutePrintPosition",
arg: [ 220, 0 ]
},
{
//打印文字
cmd: "text",
arg: [ "5元" ]
},
{
//打印并换行
cmd: "printAndFeedLine",
arg: [ ]
}
]
}, function(success, res) {
if (!success) {
alert(JSON.stringify(res));
}
});
/*
1.支持的指令集请参考打印设备的【官方文档】;
2.指令使用说明
{
//指令列表
cmds: [
//单个指令包括指令名称和参数
{
cmd: "", //指令名称,即文档里面的方法名称,注意区分大小写
arg: [] //指令参数,即对应的方法参数,注意参数顺序和类型需与文档一致
//Bitmap 图片类型请使用图片的 Base64 编码字符串
//BmpType,AlignType 枚举类型请使用枚举名称字符串
//byte[] 二进制数组请使用16进制字符串表示
},
...
]
}
*/
详情请参考 指令说明。
jsBridge.xprinter.writePos76({
cmds: [
{
//初始化打印机
cmd: "initializePrinter",
arg: []
},
{
//打印文字
cmd: "text",
arg: [ "XP-76xx 系列针式打印机" ]
},
{
//打印并换行
cmd: "printAndFeedLine",
arg: [ ]
}
]
}, function(success, res) {
if (!success) {
alert(JSON.stringify(res));
}
});
/*
1.支持的指令集请参考打印设备的【官方文档】;
2.指令使用说明
{
//指令列表
cmds: [
//单个指令包括指令名称和参数
{
cmd: "", //指令名称,即文档里面的方法名称,注意区分大小写
arg: [] //指令参数,即对应的方法参数,注意参数顺序和类型需与文档一致
//Bitmap 图片类型请使用图片的 Base64 编码字符串
//BmpType,AlignType 枚举类型请使用枚举名称字符串
//byte[] 二进制数组请使用16进制字符串表示
},
...
]
}
*/
详情请参考 指令说明。
jsBridge.xprinter.writePos80({
cmds: [
{
//初始化打印机
cmd: "initializePrinter",
arg: []
},
{
//设置绝对打印位置
cmd: "setAbsolutePrintPosition",
arg: [ 50, 0 ]
},
{
//字体大小
cmd: "selectCharacterSize",
arg: [ 17 ]
},
{
//打印文字
cmd: "text",
arg: [ "商品" ]
},
{
//设置绝对打印位置
cmd: "setAbsolutePrintPosition",
arg: [ 250, 0 ]
},
{
//打印文字
cmd: "text",
arg: [ "价格" ]
},
{
//打印并换行
cmd: "printAndFeedLine",
arg: [ ]
},
{
//打印并换行
cmd: "printAndFeedLine",
arg: [ ]
},
{
//初始化打印机
cmd: "initializePrinter",
arg: []
},
{
//设置绝对打印位置
cmd: "setAbsolutePrintPosition",
arg: [ 30, 0 ]
},
{
//打印文字
cmd: "text",
arg: [ "黄焖鸡" ]
},
{
//设置绝对打印位置
cmd: "setAbsolutePrintPosition",
arg: [ 220, 0 ]
},
{
//打印文字
cmd: "text",
arg: [ "5元" ]
},
{
//打印并换行
cmd: "printAndFeedLine",
arg: [ ]
}
]
}, function(success, res) {
if (!success) {
alert(JSON.stringify(res));
}
});
/*
1.支持的指令集请参考打印设备的【官方文档】;
2.指令使用说明
{
//指令列表
cmds: [
//单个指令包括指令名称和参数
{
cmd: "", //指令名称,即文档里面的方法名称,注意区分大小写
arg: [] //指令参数,即对应的方法参数,注意参数顺序和类型需与文档一致
//Bitmap 图片类型请使用图片的 Base64 编码字符串
//BmpType,AlignType 枚举类型请使用枚举名称字符串
//byte[] 二进制数组请使用16进制字符串表示
},
...
]
}
*/