介绍:小程序的 from_id 要在用户发生操作的时候才能产生,所以我们可以用以下方法来做 (手动触发,保存formID,后台接收保存在数据库里)

什么是formId

formId是小程序可以向用户发送模板消息的通行证,简单而言,你只有获取到formId,把它交给后台,后台同学才能向用户发送通知消息,而这个通行证的有效期只有七天。这是微信为了防止小程序滥用通知消息骚扰用户而提出的一种策略。

如何获取formId

小程序的消息文档告诉我们,获取formId有以下两种途径:支付和提交表单。用户支付一次,可获得3个formId,用户提交表单一次可得到一个formId。如果你的小程序中没有支付行为,需求又需要向用户发送消息时,你就只能依靠提交表单了。

form和form-type

小程序中有个组件叫做form。这个组件平常没什么用,说实话,在搜集formId之前,我还真没有注意过它,但是谁让它是formId的生产者呢,我们需要给用户发消息时,就很有必要了解一下了。

form组件有个属性叫report-submit当在标签中加入这个属性时,一旦表单提交,submit回调中就可以拿到formId了。

一般的获取formID 方法:

wxml:

<form bindsubmit='submitInfo'  report-submit='true'><button form-type="submit">自定义按钮</button> // 此处我们可以定义一些即将要触发的事件的样式
</form>

wx.js:

Page({submitInfo: function (e) {// 这样我们就可以获取到form_id了console.log(e.detail.formId);  }
})

如何在mpvue下收集小程序的formId

看段代码:

// mpvue<form report-submit @submit="uploadFormId"><button form-type="submit"> 查看/分享/首页/支付</button>
</form>  submitInfo(e) {console.log(e, e.mp.detail)
},

获取尽可能多的formId

从运营的角度而言,formId肯定是越多越好。所以每一个页面上用户的每一次点击我们都巴不得触发一次表单提交。哪怕从界面上讲,这次点击可能是跳转,弹窗的功能,跟表单完全无关,都要把button放在一个form中。但是这样无疑增加了前端的工作量,因为需要为每个页面的submit事件绑定一个上传formId的方法。一个可行的方法是借助vue的mixin,为每一个页面实例混入一个上传formId的方法:

  // app.jsVue.mixin({methods: {uploadFormId (e) {this.req({url: '/api/v1/formid?formId=' + e.target.formId})}}})

另外一个方法:

function _collectWeChatFormId(formId) {let token = wx.getStorageSync("token_/cookies"), openId = wx.getStorageSync("openid_cookies"), orign = 1;console.log('formId',formId)if (formId == 'the formId is a mock one') {console.log(`模拟器中运行!`)return false;} if (formId.length == 0) {console.log(`formId不能为空`)return false;}let site = '你的收集接口',dates = {token: token,openId: openId,formId: formId,orign: orign},md = 'token=' + token + '&openId=' + openId + '&formId=' + formId + '&orign=' + orign;requestHttp(site, dates, md, function (res) {console.log(res)console.log(res.data)})
}

小程序推送消息 formId相关推荐

  1. 微信小程序推送消息java开发_干货 | 微信小程序推送消息简单Demo

    在开始前,你需要准备:注册微信小程序 一个简单的springBoot 项目 微信开发者工具 正式 微信小程序发送消息主要通过WxMaTemplateMessage 类来推送 public class ...

  2. 人在家中坐,班从天上来「小程序推送」

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 如果近期有看我文章的同学,会知道我最近在公司做的 ...

  3. TP5之微信小程序推送模板消息

    TP5之微信小程序推送模板消息 1.获取formId并且存储起来,获取formId方法见: https://blog.csdn.net/u010481239/article/details/78239 ...

  4. 小程序消息推送(含源码)java实现小程序推送,springboot实现微信消息推送

    本文是比较老得技术来实现,用最新技术实现小程序推送,请看 5行java代码实现微信小程序模版消息推送 (含springboot后台和小程序源码) 也可以看最新的视频讲解:https://edu.csd ...

  5. in java中文版百度云 thinking_小程序订阅消息推送(含源码)java实现小程序推送,springboot实现微信消息推送...

    前面写过一篇云开发实现小程序订阅消息(模板消息)推送的文章,<借助云开发实现小程序订阅消息和模板消息的推送功能>是有好多同学用的是Java写后台,所以今天就再来写一篇Java后台实现小程序 ...

  6. SpringBoot小程序推送信息

    1.小程序推送信息列如我们去餐厅等位有预约提醒,剩余桌数 首先申请一个小程序,微信开放平台:小程序 2.申请小程序信息,申请信息模板 appid AppSecret 3.根据开发文档开发 subscr ...

  7. 微信小程序实现消息推送(调用小程序推送模板接口) 完整示例

    wxml文件:<form bind:submit="testSubmit" report-submit="true" hidden="{{emp ...

  8. php实现微信小程序推送,实现微信小程序模板消息不受限制、无限主动推送

    需求背景 基于微信的通知渠道,微信小程序为开发者提供了可以高效触达用户的模板消息能力,在用户本人与小程序页面有交互行为后触发,通过微信聊天列表中的服务通知可快捷进入查看消息,点击查看详情还能跳转到下发 ...

  9. 服务器调微信小程序推送接口,微信小程序API 转发消息

    转发消息 如果小程序设置了消息推送,普通微信用户向小程序客服发消息时,微信服务器会先将消息 POST 到开发者填写的 url 上,如果希望将消息转发到网页版客服工具,则需要开发者在响应包中返回 Msg ...

最新文章

  1. 国产项目管理软件/敏捷开发工具
  2. akaze特征匹配怎么去掉不合适的点_图像匹配几种常见算法与实践
  3. 刀塔传奇服务器维护,刀塔传奇360专服合服维护补偿公告
  4. Java自带的常用工具
  5. python程序开子进程打包成exe文件运行炸内存原因剖析
  6. QueryBuildRange中的表达式
  7. 【最全解析】1050 螺旋矩阵 (25分)
  8. Android之开发中用到的几个多线程解析
  9. charts漏斗图表_ECharts漏斗图属性与实例介绍
  10. 不可小视的贝叶斯(二)
  11. ASO优化经验:APP关键字优化的技巧
  12. Png怎么转jpg?这种方法教你如何快速转换
  13. 使用python暴力破解ZIP、7Z 、RAR格式压缩包密码教程
  14. 2023华东交通大学计算机考研信息汇总
  15. Acwing:奶牛慢跑(单调栈 Python)
  16. cocos渲染引擎分析(五)-----FBO实现多分辨率渲染
  17. 商品属性的选择功能的实现
  18. Matlab龚珀兹曲线模型预测,统计预测方法及预测模型.ppt
  19. 无法启动此程序因为计算机丢失msvcr110.dll,Win7运行程序提示计算机中丢失msvcr110.dll如何解决...
  20. 数组的参数必须是 ByRef

热门文章

  1. 离谱!入职BYD一个月,心态崩了。。。
  2. 什么是CAD?为什么要进行CAD格式转换?怎么转JPG图片?
  3. 实战 - 如何在本地测试接口?
  4. 普通人的计算机水平,鉴于计算机这么火,普通人谈谈普通人的看法,仅供参考...
  5. TextRank原理解释
  6. TZOJ 1004:渊子赛马
  7. win7开启SATA模式的方法
  8. node + express + sequelize + apidoc 后台初始化
  9. 微信小程序正确引入Vant Weapp
  10. Python人工智能识别陆游和苏轼的古诗