消息通知對于某些應(yīng)用是非常有用的,APP發(fā)送消息通知基本是沒有限制的,而微信小程序是通過
微信的模板消息通知實(shí)現(xiàn)的,微信模板消息目前來看還是通知非常有效,不存在垃圾信息過多的問題,還可以通過點(diǎn)擊消息直接進(jìn)入應(yīng)用詳細(xì)。如下圖所示
但是,為了防止應(yīng)用亂發(fā)通知,小程序做了一些限制,只有兩種方法可以給用戶發(fā)送模板消息,一是用戶支付后可發(fā)送3條模板消息;二是頁面發(fā)生一次提交表單行為可發(fā)送1條模板消息,而且有個(gè)期限是7天內(nèi)。如果某些應(yīng)用需要多次發(fā)送模板消息怎么辦呢?比如最近我們做的一個(gè)項(xiàng)目,涉及到多人物物交換,如果一個(gè)人發(fā)布了一個(gè)物品,可能收到多個(gè)人的交換請求,而如果交換請求不通過模板消息推送給用戶的話,那么這個(gè)應(yīng)用就是缺失的。
7天內(nèi)無限次發(fā)送模板消息的做法很簡單,就是根據(jù)“提交1次表單可推送1條模板消息,多次提交表單之間是相互獨(dú)立的”這個(gè)規(guī)則,只要在小程序前端,收集足夠多的formid就行了。比如把用戶所有的點(diǎn)擊都做成form表單提交,把想要的鏈接做成表單提交。但在實(shí)際操作中會(huì)遇到以下問題,因?yàn)橹挥衎utton組件才能提交表單,如果要把文字鏈接和圖片按鈕做成表單提交,需要在上面套一個(gè)form和button組件,如下代碼
<form bindsubmit="goto_index" report-submit="true">
<button class="form_button" form-type="submit">
<image src="/images/btn_see_auto.png" mode="aspectFit" ></image>
</button>
</form>
而button組件在小程序里是有默認(rèn)樣式的,你會(huì)發(fā)覺樣式變得非常難看,如下圖。
本來樣式是這樣的
加了form和button組件后變成了這樣
如何解決呢?最好的方式就是通過CSS定義覆蓋原有button的樣式。于是,我們程序員寫出了通用的代碼,適用于整個(gè)小程序。
button.form_button{background-color:transparent;padding:0;margin:0;display:inline;position:static;border:0;padding-left:0;padding-right:0;border-radius:0;font-size:0rpx;color:transparent;}
button.form_button::after{content:'';width:0;height:0;-webkit-transform:scale(1);transform:scale(1);display:none;background-color:transparent;}
有個(gè)小問題需要注意一下,就是原來傳遞的data數(shù)據(jù)需要加在form上面。
然后剩下的問題就是后臺(tái)把收集到的formid都上傳到后臺(tái)服務(wù)器保存,同時(shí)記錄過期時(shí)間。
服務(wù)器最好有個(gè)定時(shí)刪除過期formid的功能,增加查找可用formid的速度。
后臺(tái)發(fā)送模板消息的功能實(shí)現(xiàn)這里就不多說了,可以參考官方文檔。
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://pdcharm.com/news/4005.html