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

本文参考:安卓Native.js蓝牙连接票据打印机完整代码

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

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

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

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

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

这三个权限是

android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BLUETOOTH_PRIVILEGED

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

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

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


18 分享 关注
赵梦欢 近水楼台 罗纳尔哆嗦 ricleon@163.com yuyhq@163.com 1349686757@qq.com 451613245@qq.com 419634501@qq.com xox@qq.com 313671494@qq.com jxlsudi@qq.com pipe2000@sina.com bianwentao@vip.qq.com 506523137@163.com 小时光 schemering@qq.com skysowe 菜鸡
1392293229@qq.com

1392293229@qq.com

现在打印报
Uncaught java.io.IOException: read failed, socket might closed or timeout, read ret: -1;at android.bluetooth.BluetoothSocket.connect at printer.html:1
0 赞 3 天前
zhxf216@163.com

zhxf216@163.com

Uncaught Attempt to invoke virtual method 'java.lang.Class java.lang.reflect.Method.getReturnType()' on a null object reference;at android.bluetooth.BluetoothOutputStream.write at index.html:1,,这是什么原因,那位大神遇到过?现在是打印一行就不执行了
0 赞 6 天前
schemering@qq.com

schemering@qq.com

怎么添加Geolocation(位置信息)?
0 赞 2018-09-29 15:11
1512575740@qq.com

1512575740@qq.com

您好 可以帮忙做一个uni-app蓝牙连接吗 感谢感谢
0 赞 2018-08-24 10:31
wnsuan

wnsuan 回复 1437799@qq.com

请问你是怎么设置字体大小的呢
0 赞 2018-08-16 10:22
wt2014lj@163.com

wt2014lj@163.com 回复 635310636@qq.com

请问,你知道怎么排版了么
0 赞 2018-06-29 14:53
1183008547@qq.com

1183008547@qq.com

连接成功,为什么点打印测试,没反应?
0 赞 2018-05-31 18:46
Apple小赞

Apple小赞 回复 a15965734368

蓝牙权限是怎么加的
0 赞 2018-03-27 12:03
DoublePD

DoublePD 回复 netstone

你结尾是不是少了\r\n
0 赞 2018-03-19 17:56
jxlsudi@qq.com

jxlsudi@qq.com

Mark, 回头试试
0 赞 2018-02-23 12:56
1437799@qq.com

1437799@qq.com 回复 a15965734368

可以设置字体大小,我已经实现了
0 赞 2018-01-18 00:04
635310636@qq.com

635310636@qq.com

这里面,最麻烦的其实是排版,楼主,有写过排版的代码吗?求分享!
0 赞 2018-01-08 11:26
豆豆宝贝

豆豆宝贝

mark
0 赞 2017-12-16 21:56
493765833@qq.com

493765833@qq.com 回复 252457006@qq.com

可以试试这个
http://www.jianshu.com/p/ec0cdcd62595
0 赞 2017-11-10 09:54
netstone

netstone

请教,使用佳博的打印机,连接正常,就是outputStream没有反应,请问是什么原因?
请教大家用的是什么品牌的打印机?多谢。
0 赞 2017-11-06 20:27
532124219@qq.com

532124219@qq.com

大神 你给的zip下下来了 怎么用呢?
0 赞 2017-10-30 10:31
13917637468@163.com

13917637468@163.com

我的蓝牙打印机打印出来的是一堆乱码,楼主你的蓝牙打印机可以打印出中文吗,需要设置什么东西吗
0 赞 2017-09-29 10:34
413408219@qq.com

413408219@qq.com 回复 413408219@qq.com

这是什么问题啊
0 赞 2017-08-18 12:52
413408219@qq.com

413408219@qq.com

已配对蓝牙设备:Gprinter_CCA9 DC:0D:30:20:CC:A9 at js/printer.js:164
Uncaught java.io.IOException: [JSR82] connect: Connection is not created (failed or aborted).;at android.bluetooth.BluetoothSocket.connect at printer.html:1
Uncaught java.io.IOException: [JSR82] connect: Connection is not created (failed or aborted).;at android.bluetooth.BluetoothSocket.connect at printer.html:1
Uncaught java.io.IOException: Service discovery failed;at android.bluetooth.BluetoothSocket.connect at printer.html:1
0 赞 2017-08-18 12:51
xox@qq.com

xox@qq.com

同问 可以打图片吗
0 赞 2017-08-01 23:20
419634501@qq.com

419634501@qq.com

楼主,有想法开发一个ios的没?
0 赞 2017-07-26 17:00
451613245@qq.com

451613245@qq.com 回复 1349686757@qq.com

在你hbuilder 里面的项目根目录mainfefst.json里面的模块权限配置里面的右边 打钩
0 赞 2017-07-25 13:32
1349686757@qq.com

1349686757@qq.com

打包权限在哪里加的??前端完全不懂,被叫来研究打印的。
0 赞 2017-07-19 14:46
motm127@163.com

motm127@163.com

有ios版本吗?
0 赞 2017-07-02 21:08
a15965734368

a15965734368 回复 252457006@qq.com

字体大小好像都是打印机固定的,小票机都是一行16个字,我认为是没法调节字体大小的,至少我没见过
0 赞 2017-07-01 09:02
252457006@qq.com

252457006@qq.com

我想请教下,怎么设置字体大小嗯?
0 赞 2017-06-27 17:03
a15965734368

a15965734368 回复 ricleon@163.com

当初这个问题也是困扰了我很久,知道现在我也搞不明白位置权限和设备搜索有什么关系
0 赞 2017-05-06 15:11
ricleon@163.com

ricleon@163.com

模块里面一定要把Geolocation(位置信息),加上否则搜不出来设备列表
谢谢啊!有的手机不加也能搜索出来!搜不出来的真的遇上了,幸好有你这个提示!
0 赞 2017-05-05 16:55
80109474@qq.com

80109474@qq.com

可以打印图片么
0 赞 2017-04-15 21:05
a15965734368

a15965734368

不要问我设计到原生的一些问题,因为我也不知道......
2 赞 2016-12-26 16:33

要回复文章请先登录注册