IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> zkcPDA手持终端机5502型号打印功能实现 -> 正文阅读

[移动开发]zkcPDA手持终端机5502型号打印功能实现

zkcPDA手持终端机5502型号打印功能实现

记录一下uniapp开发安卓终端设备遇到的坑,也给和我同样经历着前端开发安卓设备的工友提供一点点帮助

<div id="btnPrint" type="button" value="打印" @click="print('00:11:22:33:44:55')">打印</div>
print(mac_address) {
				if (!mac_address) {
					mui.toast('请选择蓝牙打印机');
					return;
				}
				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(mac_address);
				plus.android.importClass(device);
				var bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);
				plus.android.importClass(bluetoothSocket);
				if (!bluetoothSocket.isConnected()) {
					console.log('检测到设备未连接,尝试连接....');
					bluetoothSocket.connect(); //连接蓝牙
				}
				console.log('设备已连接');
				if (bluetoothSocket.isConnected()) { //判断是否连接设备蓝牙
					var outputStream = bluetoothSocket.getOutputStream(); //返回一个指向服务器端的数据
					plus.android.importClass(outputStream); //importClass导入Java类对象
					var OutputStreamWriter = plus.android.importClass('java.io.OutputStreamWriter')
					var writer = new OutputStreamWriter(outputStream, 'GBK')
					plus.android.importClass(writer)



					var byteStr = '101013Q73898'
					var moduleSize = 15
					var bytes = plus.android.invoke(byteStr, 'getBytes', 'gbk')
					var length = bytes.length

					// 缓存二维码数据
					writer.write(0x1D) // init
					writer.write('(k') // adjust height of barcode
					writer.write(length + 3) // pl
					writer.write(0) // ph
					writer.write(49) // cn
					writer.write(80) // fn
					writer.write(48) //
					writer.write(byteStr)
					// 二维码纠错等级
					// writer.write(0x1D)
					// writer.write('(k')
					// writer.write(3)
					// writer.write(0)
					// writer.write(49)
					// writer.write(69)
					// writer.write(90)
					// // 设置二维码块大小
					writer.write(0x1D)
					writer.write('(k')
					writer.write(3)
					writer.write(0)
					writer.write(49)
					writer.write(67)
					writer.write(moduleSize)
					// 打印已缓存的数据二维码
					writer.write(0x1D)
					writer.write('(k')
					writer.write(3) // pl
					writer.write(0) // ph
					writer.write(49) // cn
					writer.write(81) // fn
					writer.write(75) // m

					writer.flush()

					// device = null //这里关键
					// bluetoothSocket.close();
					var string = "打印测试\r\n";
					var bytes = plus.android.invoke(string, 'getBytes', 'gbk'); //invoke调用对象(类对象/实例对象)的方法
					outputStream.write(bytes);
					outputStream.flush();
					// 换行
					outputStream.write('\n')
					outputStream.flush()
					device = null //这里关键
					bluetoothSocket.close(); //必须关闭蓝牙连接否则意外断开的话打印错误
				}
			},
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:12:56  更:2022-03-06 13:14:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 16:20:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码