微信小程序> 微信小程序--收集推送码formId

微信小程序--收集推送码formId

浏览量:3978 时间: 来源:星星之火M

为了获取尽可能多的推送码formId,所以可以在访问比较多的页面中去获取。

在每个页面中,点击比较多的button按钮、input框等等都可以去设置获取推送码formId。

1. 在wxml中,模版如下,

注意:1)form设置属性:report-submit="true" ;2) button 的“formid_button”类,把button样式改透明,在全局app.wxss里写

<form bindsubmit="saveFormId" report-submit="true">    <button form-type="submit" class="formid_button">      <!-- 被包住的代码 -->    </button></form>
.formid_button {  background-color: transparent;  padding: 0;  margin: 0;  text-align: left;}.formid_button::after {  border: 0px;}

简单使用例子如下:

<form bindsubmit="saveFormId" report-submit="true">    <button form-type="submit" class="formid_button">        <input type="text" placeholder="请输入内容"></input>    </button></form>

页面效果:

2. js代码

注意:测试时,需要在真机调试下,才有推送码。

//搜集推送码  --保存推送码saveFormId: function (e) {    console.log(e.detail.formId)    let formId = e.detail.formId; //获取推送码    //要在真机调试下,才有推送码    if (formId != 'the formId is a mock one') {      app.collectFormIds(formId);//保存推送码    }},

如下:由两个截图中可知,非真机调试下,获取的是“the formId is a mock one”。

 3. 推送码的保存和上传方法。

因为多个页面进行获取推送码,所以推送码的保存和上传方法就最好写在全局中app.js中。如下:

推送码的值是保存在globalData的globalFormIds中。collectFormIds方法为保存推送码,uploadFormIds方法为上传推送码到后台(这里就不贴出来了)。

此外,什么时候进行上传推送码呢?

如果每获取一个推送码就立即上传推送码的话,可能会造成服务器的负担,所以最好就是收集一些推送码后再上传,自行选择。上传前要判断是否已经保存有推送码,没有保存推送码,就 return; 终止掉。

//-----------------------------推送码  //保存推送码  collectFormIds: function (formId) {    let formIds = this.globalData.globalFormIds;// 获取全局推送码数组    if (!formIds) {      formIds = [];    }    let data = {      "formid": formId,      "expire": this.formatTimestamp(new Date().getTime() + 604800000) // 7天后的过期时间戳    }    formIds.push(data);    this.globalData.globalFormIds = formIds;// 保存推送码并赋值给全局变量    console.log(this.globalData.globalFormIds);  },  //上传推送码  uploadFormIds: function () {    },  //时间格式化 时间戳-->yyyy-MM-dd HH:mm:ss  formatTimestamp: function (timestamp) {    var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000    var Y = date.getFullYear() + '-';    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';    var D = this.change(date.getDate()) + ' ';    var h = this.change(date.getHours()) + ':';    var m = this.change(date.getMinutes()) + ':';    var s = this.change(date.getSeconds());    return Y + M + D + h + m + s;  },  change: function (t) {    if (t < 10) {      return "0" + t;    } else {      return t;    }  },  globalData: {    userInfo: null,    globalFormIds: '', //推送码  }

 

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎