
微信小程序模板消息实践:封装获取formId模块
185KB |
更新于2024-08-30
| 194 浏览量 | 举报
收藏
"微信小程序模板消息的获取与发送,基于Taro框架的formId功能模块封装实践"
在微信小程序开发中,模板消息是一项重要的功能,它允许开发者在用户完成特定交互后发送通知,以保持服务的连贯性并提供更好的用户体验。然而,微信对模板消息的使用设定了一些规则,如消息只能在服务通知中显示,且必须基于用户在页面内的交互行为触发,点击后只能跳转到同一小程序内的页面。因此,要发送模板消息,开发者需要在用户支付或提交表单时获取到prepay_id或formId。
formId是用户在提交表单时生成的唯一标识,它在7天内有效,可用于发送模板消息。但若用户在7天内未完成特定操作,开发者就无法获取formId,这可能会影响到业务中的通知需求。prepay_id仅在支付时产生,获取方式相对明确。本实践主要关注如何在小程序中高效地获取formId。
获取formId的关键在于使用带`report-submit`属性的`<form>`组件和`form-type="submit"`属性的`<button>`组件。小程序原生代码示例如下:
```html
<form report-submit="true" bindSubmit="submitEvent">
<button open-type="submit">提交</button>
</form>
```
在上述代码中,当用户点击“提交”按钮时,会触发`submitEvent`事件,从而获取formId。为了封装这一功能模块,可以创建一个通用的方法,监听所有满足条件的表单提交事件。通过监听`bindSubmit`,并在事件处理函数中获取并保存formId。此外,可以通过CSS隐藏提交按钮,避免用户直接看到,但仍能触发formId的获取。
封装的步骤大致如下:
1. 创建一个全局变量或状态管理工具(如Redux或Taro的Store)来存储formId。
2. 编写一个统一的`submitEvent`处理函数,该函数在接收到`bindSubmit`事件时,获取formId并保存。
3. 使用CSS将提交按钮设为透明或不可见,确保用户不会直接触发提交,但事件仍能正常触发。
4. 在需要发送模板消息时,从全局存储中获取最近的formId并发送给服务器。
通过这样的封装,可以确保在用户不察觉的情况下尽可能多地获取formId,从而提高模板消息的发送能力。不过,要注意的是,尽管如此,仍应遵循微信的使用规范,避免过度打扰用户,确保良好的用户体验。同时,需要在服务端检查formId的有效性,以防止无效消息的发送。
相关推荐




















weixin_38743054
- 粉丝: 9
最新资源
- DCBot.net实现淘宝与1688折扣自动获取神器
- GitHub评论GIF插件:快速搜索和插入GIF表情包
- DevOps演示项目:从构建到部署全流程
- CircleCI工作流程设置指南与实践
- IP定位查询插件,便捷获取服务器及IP地理位置
- GitHub Pages博客:机器学习与自然语言处理的个人空间
- DaSE111研讨会:创新数据存储与区块链技术论文集
- Bullfrog:融合Frogger和Alien Invasion的游戏项目
- 淘宝购物服务扩展TaoJet-crx插件发布
- Jalangi2-crx:Chrome扩展实现动态JavaScript分析
- 简易区块链技术:轻松存储各类数据解决方案
- 运算放大器应用与电路集成的分析
- cmd-r's log-crx:页面加载时自动截图的扩展插件
- Jenkins Blue Ocean Docker容器启动教程
- 自定义暗黑主题的Google™:trade_mark:-crx插件发布
- GitHandler: PHP环境下Git包装器使用指南
- 代理自动切换神器:Proxy Pac Switcher-crx插件
- Trofa地区Covid19统计项目展示与分析
- Docker与Flask在Pycharm中的应用教程
- npmhub-crx插件:GitHub仓库npm依赖性探索工具
- Subhub-crx插件: 在Github快速打开Sublime Text工具
- Paste To VM: 实现文本跨平台快速粘贴到虚拟机的crx插件
- Tamper Chrome扩展工具-浏览器请求修改神器
- 在线视频会议屏幕共享扩展程序:Interush开发