结尾附上我的ZPL指令 你们可以用来做测试用 很多新手小伙伴可能不太懂,所以直接复制先研究
wifi打印 蓝牙打印 适配斑马等一系列打印 - DCloud 插件市场 该插件已发布到市场 不想看我下面代码的直接去这个地址下载使用 有引入案例
1、获取蓝牙列表 获取后的蓝牙列表保存在deviceList 中
var that = this;
that.deviceList = [];
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass('android.content.Context');
var BManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
plus.android.importClass(BManager);
var BAdapter = BManager.getAdapter();
plus.android.importClass(BAdapter);
var lists = BAdapter.getBondedDevices();
plus.android.importClass(lists);
var iterator = lists.iterator();
plus.android.importClass(iterator);
while (iterator.hasNext()) {
var d = iterator.next();
plus.android.importClass(d);
var temp = {
name: d.getName(),
address: d.getAddress(),
status: d.getBondState(),
uuids: d.getUuids(),
op: d
};
that.deviceList.push(temp);
}
2、蓝牙打印 我这边默认取的是获取到的第一个蓝牙打印机,可以根据需求来改
var that = this;
var main = plus.android.runtimeMainActivity();
var BluetoothAdapter = plus.android.importClass('android.bluetooth.BluetoothAdapter');
var UUID = plus.android.importClass('java.util.UUID');
var uuid = UUID.fromString('00001101-0000-1000-8000-00805F9B34FB');
var BAdapter = BluetoothAdapter.getDefaultAdapter();
var device = BAdapter.getRemoteDevice(this.deviceList[0].address);
plus.android.importClass(device);
var bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);
plus.android.importClass(bluetoothSocket);
if (!bluetoothSocket.isConnected()) {
bluetoothSocket.connect();
if (bluetoothSocket.isConnected()) {
var outputStream = bluetoothSocket.getOutputStream();
plus.android.importClass(outputStream);
//this.ZPLString 是我传入的ZPL指令
var arrayBuffer = plus.android.invoke(this.ZPLString, 'getBytes', 'gbk');
outputStream.write(arrayBuffer);
outputStream.flush();
bluetoothSocket.close();
if (!bluetoothSocket.isConnected()) {
console.log('设备已关闭');
}
} else {
uni.showToast({
title: '设备连接失败',
icon: 'error',
duration: 2000
});
}
}
if (plus.os.name == 'Android') {
var Socket = plus.android.importClass('java.net.Socket');
var PrintWriter = plus.android.importClass('java.io.PrintWriter');
var BufferedWriter = plus.android.importClass('java.io.BufferedWriter');
var OutputStreamWriter = plus.android.importClass('java.io.OutputStreamWriter');
var BufferedReader = plus.android.importClass('java.io.BufferedReader');
var InputStreamReader = plus.android.importClass('java.io.InputStreamReader');
var StrictMode = plus.android.importClass('android.os.StrictMode');
var Build = plus.android.importClass('android.os.Build');
if (Build.VERSION.SDK_INT > 9) {
var policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
console.log('ip...' + ipAddress, port);
// 注意这个地方传IP地址和prot端口号
var socket = new Socket(`${ipAddress}`, port * 1); // "172.16.19.***", 91**
socket.setSoTimeout(5000);
var inputStreamReader = new InputStreamReader(socket.getInputStream());
var socketReader = new BufferedReader(inputStreamReader);
var outputStreamWriter = new OutputStreamWriter(socket.getOutputStream());
var bufferWriter = new BufferedWriter(outputStreamWriter);
var socketWriter = new PrintWriter(bufferWriter, true);
socketWriter.println(this.ZPLString);
console.log('socketWriter...' + socketWriter);
}
jsons: `^XA
^MD30
^CWJ,E:SIMSUN.TTF^FS
^BYW3.0,2.0
^A0N,30,50^FO100,40^BCW,130,100,N,N,A^FD123^FS
^FO50,240^GB700,180,3^FS
^FO400,240^GB3,180,3^FS
^FO50,417^GB700,180,3^FS
^FO400,417^GB3,180,3^FS
^FO50,594^GB700,180,3^FS
^FO400,594^GB3,180,3^FS
^FO50,771^GB700,180,3^FS
^FO400,771^GB3,180,3^FS
^FO50,947^GB700,150,3^FS
^FO400,947^GB3,150,3^FS
^FO50,1094^GB700,80,3^FS
^FO400,1094^GB3,80,3^FS
^FO70,280^AJN,42,42^CI28^FD生产订单号:^FS^CI28
^FO70,280^FB300,3,0,L^AJN,38,38^CI28^FD中转仓库^FS^CI28
^FO70,350^FB300,3,0,L^AJN,38,38^CI28^FDChannel Code^FS^CI28
^FO70,450^FB300,3,0,L^AJN,38,38^CI28^FD件数^FS^CI28
^FO70,520^FB300,3,0,L^AJN,38,38^CI28^FDPieces^FS^CI28
^FO70,630^FB300,3,0,L^AJN,38,38^CI28^FD重量^FS^CI28
^FO70,690^FB300,3,0,L^AJN,38,38^CI28^FDWeight^FS^CI28
^FO70,800^FB300,3,0,L^AJN,38,38^CI28^FD包裹编号^FS^CI28
^FO70,870^FB300,3,0,L^AJN,38,38^CI28^FDNO.^FS^CI28
^FO70,1000^FB300,3,0,L^AJN,38,38^CI28^FD操作员 1^FS^CI28
^CF0,50
^FO420,300^FB300,3,0,L^AJN^CI28^FD123^FS^CI28
^CF0,80
^FO430,480^FB300,3,0,L^AJN^CI28^FD123^FS^CI28
^FO430,640^FB300,3,0,L^AJN^CI28^FD123^FS^CI28
^CF0,100
^FO430,820^FB300,3,0,L^AJN^CI28^FD$123^FS^CI28
^CF0,25
^FO430,990^FB300,3,0,L^AJN^CI28^FD打印时间 ^FS^CI28
^FO540,990^FB150,3,0,L^AJN^CI28^FD123^FS^CI28
^CF0,35
^FO440,1120^FB300,3,0,L^AJN^CI28^FDmade in china^FS^CI28
^XZ`