首頁 > 搜索 > 群發小程序

群發小程序

互聯網 2020-09-19 16:34:49
【微信小程序】【實操】批量收集formId,實現模板消息自由群發瀏覽量:3274時間:2020-01-11來源:你好啊阿波正文開始,先感謝技術貼-微信小程序模板消息還能群發?無限制推送? - 簡書(網址http://www.jianshu.com/p/2d21c6875029 截止到發稿日,鏈接已經打不開),整個技術實現都是參照這篇的,本文目的旨在做個記錄,亦或是以純技術實現的角度為需要的碼農提供一個教程。        技術從第二段小程序開始,前言可以略過。

前言    微信小程序同微信公眾號一樣,也有模板消息發送功能,不一樣的是公眾號是直接通過公眾號下發通知,而小程序的通知則是下發到了一個單獨的對話框內——服務通知。

    與微信公眾號發送模板消息的另一個不同,就是小程序發送模板消息必須要帶上formId這個參數才能發送。

    formId,顧名思義,就是表單id,是在小程序頁面表單提交的過程中可以獲取到的一串數字或者隨機英文字母數字的碼,通過這種方式獲取到的表單id可以給對應用戶(表單提交人)發送一條模板消息。當然了,還考慮到商家對支付用戶可能需要多次下發例如支付成功通知、發貨通知、退款通知的這類通知,微信允許開發者在用戶支付的過程中獲取表單id(實際上是支付過程中的預支付碼),通過此碼,可以重複為用戶下發最多3條的模板消息。

    微信如今坐擁10億日活,對普通用戶體驗真是操碎了心。對於模板消息引入formId的機制,極大程度上限制了商家通過推送消息來維護用戶關係。但是不是所有應用場景都適合這個規則。

    比如說用戶使用某個小程序發布了一個百人報名活動。如果能實現有一個人報名,就向活動發起者發送一條報名通知,那就大大提高了工具的使用效率,不用發起人每次都打開小程序去看有多少人參與了報名。顯然,當前的消息發送機制無法滿足這個需求。

小程序端

    構建formId 池,每次將用戶提交的表單都搜集起來存入formId池,需要發送通知的時候從中取出即可。    將用戶有可能點擊的區域覆蓋一層不可見的button,並將整個頁面用於傳輸formId的button包裹在一Form標籤內,一旦用戶有點擊按鈕的操作,就將獲取到的formId傳送走。

下面是表單以及不可見按鈕的wxml代碼

                    

下面是樣式代碼

.submit_kong_btn{position:absolute;width:100%;height:100%;left:0;top:0;opacity:0;}

下面是小程序js代碼

Page({  formSubmit_collect: function(e) {    let formId = e.detail.formId;    dealFormIds(formId, url);    console.log('form發生了submit事件,推送碼為:',formId)   }})function dealFormIds(formId,url='') {  if(formId=='' || formId == 'undefined') {    console.log('獲取表單id為無效')    return 0;  }  let data = {    formid: formId,    expiretime: parseInt(new Date().getTime() / 1000)+604800 //計算7天後的過期時間時間戳  }  var formIds = [];  formIds.push(data);//將data添加到數組的末尾  saveFormIds(formIds,url);formIds = JSON.stringify(formIds);      var data = {formids:formIds,url:url};      //todo 向後端伺服器傳送表單id}結尾

    代碼實現需求的過程並不複雜,在有些需要執行其他事件的地方即便被表單id收集的按鈕覆蓋,也不影響事件。但是值得一提的是在表單id傳輸的過程中如果在還沒有獲取到formid的時候就跳轉走了,這樣是獲取不到formid。所以要在獲取完表單id之後再做跳轉事件,如果是在原有代碼基礎上修改,確實額外添加了一些工作量。

點擊這裡免費試用,快速創建您的專屬小程序標籤:微信小程序小程序小程序是什麼

版權聲明

即速應用倡導尊重與保護知識產權。如發現本站文章存在版權問題,煩請提供版權疑問、身份證明、版權證明、聯繫方式等發郵件至197452366@qq.com ,我們將及時處理。本站文章僅作分享交流用途,作者觀點不等同於即速應用觀點。用戶與作者的任何交易與本站無關,請知悉。

免責聲明:非本網註明原創的信息,皆為程序自動獲取互聯網,目的在於傳遞更多信息,並不代表本網贊同其觀點和對其真實性負責;如此頁面有侵犯到您的權益,請給站長發送郵件,並提供相關證明(版權證明、身份證正反面、侵權鏈接),站長將在收到郵件12小時內刪除。