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(); //必须关闭蓝牙连接否则意外断开的话打印错误
				}
			},
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
产品特色: PrinterShare移动打印直接打印上的文件、包括来自SD 卡及Google 文件、Gmail、相片、联络资料、行事历、SMS/MMS、通话记录及网页的文件(DOC、DOCX、XLS、XSLX、PPT、 PPTX、PDF、TXT)。 功能: *经由Wi-Fi 或蓝牙,即可在附近的印表直接列印,无须使用电脑; *列印至附近PC 或Mac 共享的印表; *无限次远端列印。接收端(Mac 或PC) 无须购买页数或订用服务。 近端列印:如果您有Wi-Fi 或蓝牙印表,就可直接在该印表上列印。在主选单中选择附近的印表,然后选择想要使用的印表即可。如果您的印表并不支援此功能,Windows 用户可到printershare.com 下载我们免费提供的软件,并在安装软件后共用您的印表。 Mac 用户则可使用内建的Mac OS X Printer Sharing 服务来共享印表。近端列印服务需使用PrinterShare Premium Key。您可在Market 购买Premium Key,或者到printershare.com 以PayPal 付款购买。购买Premium Key 之前,我们强烈建议您首先列印测试页面。 远端列印:您可经由互联网,在世上所有角落进行列印,包括您自己的印表。接收列印要求的一端,无论使用Mac 还是PC,均须进入printershare.com 取得我们的免费软件并加以安装,才能共享印表。您在装置里找到共享印表后,就能列印。远端列印须使用PrinterShare 用户帐户。如果电脑和装置都由您控制,我们建议两者均使用相同的帐户注册。使用Premium Key 后,远端列印的限制就会取消。否则,接收列印要求的一方,就须购买页数或订用付费服务。首 20 页费用全免。 云端列印:PrinterShare 支援Google 云端列印,无须另行收费。要执行云端列印,您的电脑上需要安装最新版本的Google Chrome 浏览器。如欲取得更多设定指示,请参阅google.com/support/cloudprint 从装置上列印时,我们一般建议使用Wi-Fi 或3/4G,以获得更佳效能。但是,EDGE/GPRS 或任何其他连接方式也能使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值