为了获取尽可能多的推送码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) { 开通牛皮席小程序电话:4006-838-530console.log(e.detail.formId) let formId = e.detail.formId; //获取推送码 //要在真机调试下,才有推送码 if (formId != 'the formId is a mock one') { app.collectFormIds(formId);//保存推送码 }},
如下:由两个截图中可知,非真机调试下,获取的是“the formId is a moc开通玛莎拉蒂特价车小程序电话:4006-838-530k 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(dat开通3-5万小程序电话:4006-838-530e.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: '', //推送码 }
微信小程序
最新评论