我們上面給單個(gè)手機(jī)發(fā)送驗(yàn)證碼的功能實(shí)現(xiàn)了,接下來(lái)就教大家如何群發(fā)短信。
老規(guī)矩,先看效果圖
簡(jiǎn)單起見,我這里只定義一個(gè)輸入手機(jī)號(hào)的輸入框和一個(gè)button按鈕
對(duì)應(yīng)的代碼如下
我這里以*來(lái)分割手機(jī)號(hào),如下圖所示。
然后我們定義一個(gè)bindinput事件來(lái)獲取用戶輸入的內(nèi)容。
可以看到,我們成功的獲取到了用戶輸入的手機(jī)號(hào)了。
但是官方文檔里已經(jīng)說(shuō)明,我們?nèi)喊l(fā)短信的時(shí)候需要用到的是一組手機(jī)號(hào),也就是說(shuō)需要用數(shù)組來(lái)存放數(shù)據(jù)。但是我們這里是一個(gè)字符串。那么我們就要分割字符串成數(shù)組了。
我們分割字符串用到的是字符串的split()方法
當(dāng)然觸發(fā)的時(shí)機(jī),應(yīng)該是在用戶點(diǎn)擊群發(fā)按鈕的時(shí)候。那么我們就為群發(fā)按鈕定義bindtap點(diǎn)擊事件send
可以看到我們成功的把字符串分割成了數(shù)組。
但是我們數(shù)組里的手機(jī)號(hào)前面有個(gè)回車鍵,所以安全起見,我們?cè)诜指钭址?,需要先把這回車鍵給剔除掉。
去除字符串里的回車鍵語(yǔ)法如下
字符串.replace(/[\r\n]/g, "")
可以看到我們只需要調(diào)用字符串.replace方法即可,后面括號(hào)里跟的是回車鍵對(duì)應(yīng)的正則表達(dá)式。這里不需要記住,后面用的時(shí)候來(lái)我筆記這里復(fù)制就行了。
可以看到我們剔除回車鍵以后,再分割的字符串里就沒(méi)有回車鍵了。
如果你有仔細(xì)閱讀官方文檔,可以看到我們?nèi)喊l(fā)的手機(jī)號(hào)前面必須以+86開頭。并且每次群發(fā)的手機(jī)號(hào)不能超過(guò)1000條。
那么我們接下來(lái)就要遍歷數(shù)組,給每個(gè)手機(jī)號(hào)前面都添加‘+86’了。
當(dāng)然了這里有很多種方法來(lái)實(shí)現(xiàn)這一目的,我這里用一個(gè)for循環(huán)和一個(gè)map方法來(lái)分別實(shí)現(xiàn)下。
可以看出用map方法更簡(jiǎn)潔一點(diǎn)。但是對(duì)于新手來(lái)說(shuō)第二種方法可能不是很好理解。所以這里你用哪種方法都可以,不做強(qiáng)制要求。
那么我們接下來(lái)要做的就是實(shí)現(xiàn)群發(fā)功能了。我們這里要想成功的實(shí)現(xiàn)群發(fā),需要兩個(gè)元素
關(guān)于手機(jī)號(hào)和群發(fā)內(nèi)容都有要求
我們?nèi)喊l(fā)手機(jī)號(hào)這里已經(jīng)符合要求了,接下來(lái)就是群發(fā)的內(nèi)容了。群發(fā)內(nèi)容最長(zhǎng)不能超過(guò)60個(gè)字節(jié),一個(gè)漢字通常2~3個(gè)字節(jié)。也就是說(shuō)我們短信內(nèi)容不能超過(guò)20個(gè)字,所以群發(fā)的短信一定要精細(xì)。用最少的字來(lái)吸引用戶。
這里其實(shí)就是一個(gè)input來(lái)獲取用戶輸入的內(nèi)容就行了。我不再多講,直接把代碼貼出來(lái)。
在js里獲取用戶輸入的短信內(nèi)容
現(xiàn)在萬(wàn)事具備,只欠一個(gè)云函數(shù)了
短信內(nèi)容和群發(fā)的手機(jī)號(hào)都已經(jīng)成功拿到了,我們接下來(lái)就要來(lái)編寫群發(fā)的云函數(shù)了。
云函數(shù)其實(shí)我們短信驗(yàn)證碼那一節(jié)基本上一樣,區(qū)別就是
云函數(shù)編輯好,記得重新部署下。
上面云函數(shù)編輯好了,也部署好了,接下來(lái)就是要調(diào)用云函數(shù)實(shí)現(xiàn)短信群發(fā)了。
調(diào)用其實(shí)很簡(jiǎn)單。
接下來(lái)我們就要驗(yàn)證自己的勞動(dòng)成果了。如下,我發(fā)這樣的內(nèi)容給兩個(gè)手機(jī)號(hào)。為什么是兩個(gè)呢,我這里是學(xué)習(xí),要節(jié)省短信條數(shù)。官方只送我們1000條。所以要省著點(diǎn)用。
其實(shí)群發(fā)兩個(gè)手機(jī)號(hào),和群發(fā)1000個(gè)沒(méi)區(qū)別,只要群發(fā)兩個(gè)成果,那么群發(fā)1000個(gè)也一樣的。
辛辛苦苦編寫好了,測(cè)試了下,居然報(bào)錯(cuò)
什么鬼,代碼明明沒(méi)有錯(cuò)誤啊,程序員有時(shí)候就是莫名的自信。
官方給的發(fā)送成果返回字段如下
石頭哥發(fā)送返回結(jié)果如下
百思不得其解啊。不會(huì)真是代碼寫錯(cuò)了吧。。。。
還好石頭哥比較聰明,翻譯了一下報(bào)錯(cuò)信息。
發(fā)送時(shí)間限制,也沒(méi)看到官方文檔有說(shuō)時(shí)間限制啊。后來(lái)又去官方文檔翻來(lái)覆去,終于在一個(gè)角落里看到了這句話。
原來(lái)是石頭哥寫文章太晚了。。。。
本來(lái)想寫完文章,直接錄講解視頻給大家的,,,,看來(lái)只能等第二天8-22:00來(lái)續(xù)寫這篇文章了。。。。
終于等到了第二天8點(diǎn)47,下面我們把昨天的群發(fā)短信再演示一遍,看這次能不能成功。
先來(lái)看我們的日志
可以看出日志上顯示成功的發(fā)送兩個(gè)。那么收到的短信長(zhǎng)什么樣子,也給大家截個(gè)圖。
第一個(gè)手機(jī)號(hào)是安卓手機(jī)
第二個(gè)手機(jī)號(hào)是蘋果手機(jī)
到這里我們的群發(fā)短信功能就完整的實(shí)現(xiàn)了。
細(xì)心的同學(xué)可能看到了,我們短信里有個(gè)鏈接,其實(shí)這個(gè)鏈接可以實(shí)現(xiàn)我們短信喚起小程序功能的。想想看,我們給用戶群發(fā)短信的目的,不就是為了讓用戶重新回到我們小程序嗎。所以短信能喚起小程序,是不是方便了用戶呢。下一節(jié)給大家講短信喚起小程序的功能實(shí)現(xiàn)。
系列課程,持續(xù)更新中,歡迎關(guān)注“編程小石頭”