# 风火递 **Repository Path**: yanglilong127/wind_and_fire_delivery ## Basic Information - **Project Name**: 风火递 - **Description**: 快递用途 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2019-01-17 - **Last Updated**: 2024-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 风火递 ### 项目目录结构 ``` |- components 组件文件夹(目前里面带uni-前缀的文件夹组件都未使用,不需要删除) |- pages 所有页面 |- |- static 静态资源文件 |- store vuex操作 |- style 公用外部样式表文件 |- unpackage 打包文件夹(不用管) |- utils |- animate.js 自己封装的运动组件(适用于APP-PLUS、小程序) |- index.js 所有公用函数库 |- .gitignore 上传git代码忽略 |- config.js 配置文件 |- manifest.json 配置文件 |- pages.json 配置文件 ``` ### 项目开发工具&技术栈 1. 工具:HbuilderX 2. 技术栈 ``` uni-app + vue + vuex ``` #### 运行到微信小程序 目录文件在:unpackage/dist/dev/mp-weixin #### 目前测试结果 1. 安卓手机 - 运行到微信小程序可以连接,但无法打印 -- 原因是未能获取到 可读可写的服务id - 运行到app里,无法连接上蓝牙打印机 2. ios手机 - 运行到微信小程序,可实现打印 #### 笔记 ``` 发送大于 20 字节的数据包 众所周知,BLE 4.0 中发送一个数据包只能包含 20 字节的数据,大于 20 字节只能分包发送。 微信小程序提供的 API 中似乎没有自动分包的功能,这就只能自己手动分包了。 调试中发现,在 iOS 系统中调用 wx.writeBLECharacteristicValue 发送数据包, 回调 success 后紧接着发送下一个数据包,很少出现问题,可以很快全部发送完毕。 而安卓系统中,发送一个数据包成功后紧接着发送下一个,很大概率会出现发送失败的情况, 在中间稍做延时再发送下一个就可以解决这个问题(不同安卓手机的时间长短也不一致), 照顾下一些比较奇葩的手机,大概需要延时 250 ms 。 不太好的但是比较科学的办法是,只要成功发送一个数据包则发送下一个,否则不断重发,具体就是 wx.writeBLECharacteristicValue 回调 fail 则重新发送,直至发送完毕。 ```