- 最佳实践|小程序、公众号打开各地健康码的官方“捷径”
3分钟搞懂从公众号菜单栏、小程序、短信等多场景一键跳转健康码的最快方式 [图片] 第一步:开通城市服务开放互联API能力 点击查看微信城市服务开放互联能力介绍 【申请条件】 已进驻城市服务且已开通服务主页的账号(公众号、小程序、OPEN账号均支持) 【申请方式】 发送申请邮件至 wx_city@tencent.com ,标题格式为【城市服务开放互联能力申请+主体名称+APPID】,并在正文列明以下信息,后台工作人员将在收到邮件后尽快处理并回复结果。 [图片] 第二步:使用API,跳转微信城市服务健康码入口页 【入参示例】 { "page_type": 2, "src_channel": 0, "city_id": 440100, //cityid和城市名的具体映射表见:https://wximg.qq.com/cityservices/doc/cityids.html "card_type":10001 } 【返回示例】 { "errcode": 0, "errmsg": "成功", "path": "XXX", "bussiness_type": "xxd" }
2021-12-23 - 收下这份指南,小程序蓝牙应用不再难
在移动互联网全民化发展的当下,蓝牙技术凭借着简便、安全、低成本的优势逐渐成为无线技术领域的中流砥柱。在共享单车领域,电子设备和单车锁通过蓝牙技术形成可靠且安全的连接,从而提升用户体验。 微信团队一直致力于 小程序蓝牙能力 的应用开发,提升小程序在无线技术领域的高效、安全、可靠应用。通过 滴滴青桔小程序 等项目落地验证,小程序蓝牙能力的合理应用能够实现搜索成功率、连接成功率、开锁成功率的全面提升。 [图片] 当前主流的蓝牙技术主要是经典蓝牙 (BR / EDR) 和低功耗蓝牙 (BLE),其中 BLE 凭借着与电子设备的简便互操作性,成为大部分共享单车蓝牙锁的重要技术选型。 在实际应用场景,小程序蓝牙技术与蓝牙锁之间进行以下技术交互,实现解锁。 Step 1:蓝牙扫描 扫描蓝牙广播,检查 Android 系统直连模式是否连接正常。 Step 2:生成通信帧 与锁建立 BLE 连接后,准备获取锁的 Token 通信帧,将传递信息 AES 加密并转化成 HexString 发送。 Step 3:获取锁的 Token 将传递信息 AES 解密后收到 Token 获取成功通信帧,同时截取相应位数的字节作为令牌 Token,准备开始解锁。 Step 4:等待解锁 发送解锁信息通信帧,利用 Password 还有 Token 同样将传递信息 AES 加密并转化成 HexString 以一定的规则发送,等待解锁。 Step 5:解锁成功 收到蓝牙返回的信息 AES 解密后得到解锁通信帧代表解锁成功。 [图片] 通过 滴滴青桔小程序 等项目的实践探索,合理应用小程序蓝牙技术能够实现解锁全链路的优化提升—— 提前搜索时机提升蓝牙搜索成功率 蓝牙技术在搜索耗时的原生限制导致单车锁-电子设备之间的搜索成功率偏低。因此在不增加用户功耗的前提下,适当提前搜索时机能够减少搜索设备的耗时,提升蓝牙搜索成功率。 [图片] 默认直连模式提升蓝牙连接成功率 大部分的 Android 系统手机均支持直连模式,建议针对 Android 系统,默认使用直连模式,加速蓝牙连接流程。如果直连模式失效,则重新搜索,连接附近设备。 [图片] 建立失败重试机制提升蓝牙开锁成功率 低功耗蓝牙的原生不稳定性要求开发者做好重连逻辑。建议建立失败重试机制,即在每个 API 回调失败后,允许失败重试 3 次,用于提升开锁成功率。 [图片] 在小程序蓝牙技术应用过程中,总结以下应用注意点,助力开发者更好地应用蓝牙能力。 连接前 开启 notify 功能:连接前必须调用 notifyBLECharacteristicValueChange 才能接收到设备推送的信息,否则只能发送数据,无法接收数据。注意 iOS 与 Android 的蓝牙应用区别[图片] 连接中 停止搜索以减少性能消耗:调用 onBluetoothDeviceFound 搜索设备成功,必须执行 stopBluetoothDevicesDiscovery 停止搜索,避免后台资源消耗性能。不使用 Android 1800 / 1801服务:在获取设备服务时,部分 Android 机型增加系统自带的 00001800 和 00001801 服务,请不要使用这 2 项服务。重装微信获取其他设备服务:部分 Android 机型通过 getBLEDeviceServices 仅得到系统自带的 00001800 和 00001801 服务,重装微信即可获取其他设备服务。 连接后 及时关闭连接及蓝牙设备:操作完成后,及时关闭连接及蓝牙设备,否则在 Android 系统下,出现设备搜索失败的情况。成对调用创建和关闭 BLE 连接:建议成对调用 createBLEConnection 和 closeBLEConnection 接口,否则在 Android 系统下,重复调用 createBLEConnection 接口,可能导致系统持有同一设备多个连接的实例,最终导致调用 closeBLEConnection 不能真正断开与设备的连接。 合理应用小程序蓝牙技术能够丰富小程序的应用场景,提升小程序性能表现,进一步优化用户体验。 如有其他小程序应用相关的问题,可在 微信开放社区小程序交流专区 发帖互动,技术专员将为大家解答及进行深度交流。
2022-07-12