微信小程序

分类下相关文章

微信小程序跨页面的蓝牙状态共享

例如,在微信小程序首页建立了蓝牙连接,但是要进入配置页面,进行蓝牙设备参数修改。 两个页面都需要监听蓝牙设备的数据回复。如何做到跨页面的蓝牙状态共享呢? 主要是几个参数缓存一下就行,不需要重复服务发现过程。但是,监听还是需要的。 Done: 测试切换页面监听是否还存在 例如,从首页(已建立监听),进入配置页(没有建立监听)。 这时,从蓝牙设备,发送数据,看看是否能接收到数据。 经测试,依然能收到数据。只是 toast 显示之类的跟界面相关的看不到罢了。 Done: 监听放全局的改造是否可行 似乎也不可行,因为每个页面接收到数据后的处理逻辑也不一样。 例如,有的更新这里,有的要更新界面的那里。 ...

阅读全文...

微信小程序支持 await 关键字的用法

使用场景 在一个微信小程序与蓝牙设备交互的场景中,我担心一次性发送过多请求导致蓝牙设备扛不住压力。 所以想每次发送间隔几十毫秒。 可读性最好的写法当然是使用 await 关键字了,否则要异步回调实现间隔性发送,代码可读性是个问题。 查了一下,微信小程序已经支持: https://developers.weixin.qq.com/community/develop/article/doc/0008ee7efe4cf0a25799a071c5b013 看上去只要勾选了“增强编译”就可以了,不需要额外的配置。 简单测试 使用 timeout 来测试一下。 首先在 utils/util.js 中定义 ...

阅读全文...

微信小程序 scroll-view 中的 input 输入框获得焦点时,文字浮起错位

非常诡异的一个问题,微信小程序中做了一个参数配置页面,这个页面参数有点多,所以做成了在 scroll view 中嵌套 input 的实现。但是当 input 输入框获得焦点时,里面的文字就会上浮错位。 这个体验完全不能接收啊。。。 解决方法 搜索了半天,找到了一个完全相同的案例: 一句话描述一下解决方式:不要给scroll-view 指定height=100vh; 设置为 95vh 就可以解决。 我改成了 99vh 也可以完美解决这个 bug。 但是底部会出现一块小区域空白,给 page 设置个默认背景色来解决。 修复后的效果: 参考 https://developers.weix ...

阅读全文...

小程序多页面间共享蓝牙连接状态

场景 设备列表页,展示可连接的蓝牙设备列表,并选中指定设备建立连接 数据展示页,自动同步设备上的运行状态数值 (使用设备列表页已建立的连接) 参数设置页,进行设置操作 (也需要用到设备列表页建立的连接) 发送、接收涉及的参数 发送:wx.writeBLECharacteristicValue deviceId serviceId characteristicId 接收: wx.onBLECharacteristicValueChange & wx.notifyBLECharacteristicValueChange deviceId serviceId characteris ...

阅读全文...

小程序蓝牙设备通信逻辑及接口

主要分三大块功能: 开始扫描附近的蓝牙设备列表 建立连接 断开连接 开始扫描:1. 初始化蓝牙模块 接口:wx.openBluetoothAdapter 开始扫描:2. 开始搜寻附近的蓝牙外围设备 接口:wx.startBluetoothDevicesDiscovery 注意事项: 此操作比较耗费系统资源,请在搜索并连接到设备后调用 wx.stopBluetoothDevicesDiscovery 方法停止搜索 参数 services:如果设置此参数,则只搜索广播包有对应 uuid 的主服务的蓝牙设备。建议主要通过该参数过滤掉周边不需要处理的其他蓝牙设备。主服务 uuid 都是四位的。 ...

阅读全文...

桌面工具 XCOM 调试小程序蓝牙通信

首先,需要将蓝牙开发板用 USB 连接到 Windows 主机上,然后使用小程序连接蓝牙设备。 串口选择 COM3 串口操作 打开串口。 注意,如果不打开,就无法接收小程序发送到蓝牙设备的数据。 关闭发送新行 例如,我想模拟向小程序发送数据: 34 34 35 35 31 31 31 31 31 但实际上,从小程序接收到的数据为: 34 34 35 35 31 31 31 31 31 0D 0A 这个 0D0A 是 XCOM 自动加上的换行,需要取消勾选 "发送新行" 配置截图 ...

阅读全文...

微信小程序封面广告不显示问题

给我的大象计算器微信小程序设置了封面广告,从介绍看,类似于 APP 的开屏广告。 不过展示场景仅限于从微信首页下拉界面点击打开小程序时,才会显示封面广告。 后台开启了封面广告,但是不显示 开始是猜测需要等一段时间才生效。 后来发现是,因为之前已经打开了小程序,从手机系统杀掉小程序,然后再次从微信首页下拉打开小程序, 就能看到封面广告了。并不需要发布新版本审核。 用户体验并不好 由于我是工具类的小程序,我觉得我的用户都是抱着提升效率的目的来使用我的小程序的。 如果增加了开屏广告,反而使他们的效率降低,因为需要先看一个完全无关的广告。 而且微信的封面广告,不但设计丑陋,相关性也差。 所以,丝毫没有 ...

阅读全文...

Javascript BCC校验(异或校验)

由于要使用微信小程序给蓝牙设备发送指令,但是担心指令传输中数据错乱,所以添加了异或校验,即BCC校验。 异或校验原理 参考 http://www.ip33.com/bcc.html BCC(Block Check Character/信息组校验码),因校验码是将所有数据异或得出,故俗称异或校验。具体算法是:将每一个字节的数据(一般是两个16进制的字符)进行异或后即得到校验码。 例如16进制数据:01 A0 7C FF 02 计算:01 xor A0 xor 7C xor FF xor 02 = 20 校验码是:20 即,最终结果就是一个字节(两个十六进制字符) 异或的计算规则 异或的运算法则为 ...

阅读全文...

微信小程序蓝牙通信发送指令,十六进制编码转换

示例代码 这是微信小程序官方示例中的一段代码,用于向蓝牙设备发送指令。 writeBLECharacteristicValue() { // 向蓝牙设备发送一个0x00的16进制数据 let buffer = new ArrayBuffer(1) let dataView = new DataView(buffer) dataView.setUint8(0, Math.random() * 255 | 0) console.log("deviceId: " + this._deviceId); console.log(&q ...

阅读全文...

小程序 wx.writeBLECharacteristicValue 向蓝牙写入数据报错 10004 noservice

使用微信小程序官方提供的操作蓝牙设备示例代码 https://developers.weixin.qq.com/miniprogram/dev/framework/device/bluetooth.html 向低功耗蓝牙设备写入数据时,发现蓝牙设备没有收到数据。 为 wx.writeBLECharacteristicValue 增加了成功失败回调之后 wx.writeBLECharacteristicValue({ deviceId: this._deviceId, serviceId: this._deviceId, characteristicId: this._characteri ...

阅读全文...

故障报修微信小程序,扫码一键报修

使用需求 很多实体设备出故障、或者损坏时,不能及时找到售后服务报修。 百度搜索售后服务联系方法,搜出来的大多是广告 即便能联系上客服,也很难说明白设备型号,是否超出质保期 自动生成质量问题报表,可以查看客观的统计数据 微信小程序解决方案 在实体设备上贴上小程序报修二维码,或者小程序码 出故障时,用户可以直接用微信扫码一键报修 反馈内容 故障描述 联系电话 联系人,选填 地址 其他功能 查看处理进度 查看所有报修历史 对售后服务质量进行评价 真实需求 设备保修小程序 微信小程序故障报修 ...

阅读全文...

股票收益计算器 - 输入交易额自动计算盈亏、利润

收到一位大象计算器微信小程序的热心用户反馈,希望我能增加一个股票收益计算器的功能。即股票算利润的软件功能。 股票收益计算器小程序功能需求 输入交易额自动计算盈亏、利润。 输入项 交易数量,股数 佣金,百分比 买入价格 卖出价格 自动计算结果 盈亏额 收益率 买入交易额 买入税费 卖出交易额 卖出税费 小程序界面效果 扫码体验 ...

阅读全文...

微信小程序通过蓝牙控制硬件设备、及数据传输

微信小程序目前并不支持经典蓝牙 参考: https://developers.weixin.qq.com/community/develop/doc/000c20c0574c00b9a33b0c38c51400?_at=1618552916637 同一设备是否可以同时支持经典蓝牙与低功耗蓝牙 蓝牙 4.0 规范允许设备同时支持经典与低功耗蓝牙协议。 小程序蓝牙是否支持同时连接多个设备 https://developers.weixin.qq.com/community/develop/doc/0006c8b8a20790892019957cb51809?_at=1618552916637 i ...

阅读全文...

在线报名人数统计小程序导出太阳码

真实需求 除了转发到群里,让群里用户点击小程序进行报名。有时,还需要能将指定活动的小程序二维码打印出来,放在线下方便参与者用手机扫码打开小程序进行报名。 报名人数统计小程序体验地址 本地开发测试 由于每次生成 token,都会导致之前的 token 失效,所以需要能在本地开发环境获取到线上的 token。 最简单的做法,在每次线上启动阶段获取的 token 打印到日志里,或者写入一个指定文件。然后在测试环境使用写死的 token。 下载小程码 为了导出太阳码,而引入一个 canvas 库,增加小程序安装包体积,并不值得。因为会导致启动加载变慢。其实最简单的做法是,直接后台生成图片,前端加载图片 ...

阅读全文...

wx.getUserProfile 解决微信小程序 button open-type="getUserInfo" 无法获取用户昵称、头像

微信小程序获取用户信息接口重大调整 参考微信官方的声明: https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801?token=838205899&lang=zh_CN 2021年4月13日后发布的小程序新版本,无法通过wx.getUserInfo与 button open-type="getUserInfo" 获取用户个人信息(头像、昵称、性别与地区) 打印日志,看到信息都是空: avatarUrl: "https://thirdwx.qlo ...

阅读全文...