a15965734368
a15965734368
  • 发布:2016-12-26 16:27
  • 更新:2022-03-31 11:09
  • 阅读:21385

蓝牙打印机打印小票项目版

分类:Native.js

本文参考:安卓Native.js蓝牙连接票据打印机完整代码
注意:本代码是很多年前的老代码了,已停止维护,对现在的uni-app不适用了。后续项目如果有uni-app蓝牙打印需求的话,会再封装一份新的。不用再私信我了,我都忘了咋写的了...

项目需要需要写一个手机开小票的东西,蓝牙打印机是目前比较成熟的东西!某宝买了一个蓝牙打印机和几卷热敏纸开搞.....
本人对android原生的东西不了解,也不想去麻烦我们的android工程师,只好从论坛内找,很轻松找打了本文参考链接里面这位仁兄写的文章,大写的服....同时也见识到了Native.js的威力,通过该文章确实可以连接到打印机也可以打印,但是说实话真不好用,主要有以下几点

   1.不支持自动连接打印机,操作复杂  
   2.蓝牙配对这一环节不好用还,而且速度很慢很费时间,没有配对错误提示也没有成功提示  
   3.手动配对好之后仍需要重新搜索蓝牙设备手动连接设备一次  

显然这样的体验是拿不上台面的,项目经理不愿意客户更不会愿意,于是开始大换血,主要做了以下优化

   1.首先界面要做的逼格高一点,尤其是进行到了哪一步一定要让客户知道啊  
   2.增加了检测蓝牙开启状态,傻瓜式操作  
   3.优化了检测配对情况,原来如果配对输入的密码不对也有可能会被加入到已配对列表里面  
   4.最主要的就是优化配对这一环节,原来的做法是根据点击的设备ID在重新搜索到和该Id一致的时候配对,现在是直接配对取消了重新搜索这一环节,稳定性和配对时间都比前者好多了,并且有了配对状态提示,配对成功和失败都是有提示的  
   5.连接打印机这一环节分成了两种情况,一种是配对后直接连接需要在有其他操作,另一种就是手动点击已配对列表的设备连接打印机  
   6.只要连接过一次打印机的下次启动app会自动连接(根据缓存来的,默认连接的是上一次连接的打印机)  

真机测试完全没问题,但是问题出现在了打包之后....在搜索开启蓝牙和搜索蓝牙设备的时候都不行。一想是权限的问题,吧蓝牙权限加上之后就可以了。。。

这三个权限是
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BLUETOOTH_PRIVILEGED

模块里面一定要把Geolocation(位置信息),加上否则搜不出来设备列表,真是想不明白为什么蓝牙还需要获取位置信息?

这里我就不贴代码了,具体看附件,封装程度算是较高了,基本上小改下就可以用了

附件是我新建的一个app项目,核心JS文件是printer.js

23 关注 分享
赵梦欢 近水楼台 Float r***@163.com y***@163.com 1***@qq.com 4***@qq.com 4***@qq.com x***@qq.com ivan8015 Search p***@sina.com b***@vip.qq.com 5***@163.com Dodu s***@qq.com skysowe 菜鸡 html5vip 1***@qq.com 蓝牙打印机 1***@qq.com 老家三轮车

要回复文章请先登录注册

a15965734368

a15965734368 (作者)

换了框架之后就没上过这个论坛,最近有项目需要用uni-app,又登录了一下,没想到这个帖子这么多回复的。如果还有用到蓝牙打印机的项目我会再更新这个帖子
2020-07-02 15:15
糖糖男儿

糖糖男儿

回复 5***@qq.com :
这个是普通蓝牙的,不是ble的,不支持ble传输协议的,有啥问题可以问我wx、QQ892955029
2020-02-26 23:27
5***@qq.com

5***@qq.com

回复 1***@qq.com :
你解决了吗?
2019-12-05 11:24
4***@qq.com

4***@qq.com

回复 上海Allen :
可以分享一下代码不啊
2019-11-06 15:09
上海Allen

上海Allen

回复 4***@qq.com :
实现了,不过不是我做的,是安卓工程师自定义基座,根据打印机提供的sdk文档搞的
2019-10-08 17:20
4***@qq.com

4***@qq.com

回复 上海Allen :
请问打印图片怎么实现的?
2019-10-07 16:11
上海Allen

上海Allen

回复 丿保存丶 :
我简单的排了一下,测算了一下80纸张最大字节数,自己对字符进行切割,就是打不了图片
2019-03-12 11:15
1***@qq.com

1***@qq.com

回复 1***@qq.com :
你好,请问怎么怎么设置字体大小吖
2019-03-07 16:34
云飞扬啊

云飞扬啊

跑不成功,也不报错。。。什么鬼。蓝牙设备具体有什么要求?
2019-02-22 09:42
Morning

Morning

Uncaught java.io.IOException: read failed, socket might closed or timeout, read ret: -1;at android.bluetooth.BluetoothSocket.connect at printer.html:1 这个问题,怎么解决在线等
2019-02-20 17:14