不想看下面廢話的羹铅,可直接掃碼體驗(yàn):
對(duì)代碼有興趣的看這里:
小程序的源碼地址:https://github.com/chenyuzuo/garbage_sort_mini
開(kāi)發(fā)常見(jiàn)問(wèn)題:
https://mp.weixin.qq.com/s/-Z5RotNye2zdSX3-W1Bfkw
1.核心功能
參考了目前很多垃圾分類小程序哗魂,其實(shí)大家的功能都大同小異,其中最關(guān)鍵的點(diǎn)無(wú)非就是幫助用戶快速查找垃圾屬于具體的分類鹦赎,目前實(shí)現(xiàn)了如下幾個(gè)功能:
1.文字搜索:根據(jù)文本搜索垃圾分類
2.拍照識(shí)別:根據(jù)圖片識(shí)別出文本然后搜索垃圾分類
3.語(yǔ)音識(shí)別:根據(jù)語(yǔ)音識(shí)別出文本然后搜索垃圾分類
4.垃圾分類基礎(chǔ)數(shù)據(jù):分成四大類,每類數(shù)據(jù)根據(jù)字母表可以索引
2.具體實(shí)現(xiàn)
我自己本來(lái)是后端開(kāi)發(fā),第一次從零開(kāi)發(fā)小程序爹殊,前端并不熟悉,這個(gè)小程序的實(shí)現(xiàn)很大部分借助了開(kāi)源社區(qū)以及云平臺(tái)的能力奸绷,具體如下:
- 垃圾分類基礎(chǔ)數(shù)據(jù)的收集和處理
從前面幾個(gè)核心功能也可以看的出梗夸,所有的功能前提是有一份垃圾分類數(shù)據(jù),github上有多個(gè)項(xiàng)目提供了垃圾分類數(shù)據(jù)号醉,我參考了這個(gè)項(xiàng)目反症,github地址:https://github.com/alexayan/garbage-classification-data辛块,基于這個(gè)項(xiàng)目的基礎(chǔ)數(shù)據(jù)做了一些處理,主要點(diǎn)是增加字母表的分類铅碍,如下圖润绵,我想展示的效果是希望數(shù)據(jù)可以按字母表排序,且可以點(diǎn)擊字母索引胞谈,處理的思路是取每個(gè)文本的首個(gè)漢字拼音的首字母尘盼,比如白紙,取白字的拼音首字母就是B烦绳,基于這個(gè)思路github上面繼續(xù)找到這個(gè)項(xiàng)目https://github.com/hotoo/pinyin卿捎,用NodeJs處理文本得到文本的拼音和首字母,最終得到一份基礎(chǔ)數(shù)據(jù)JSON格式大概這樣的
{
"categroy": 1,
"data": [{
"letter":"A",
"garbageItem": ["A4紙", "安全帽"]
}, ...]
}, {
"categroy": 2,
"data": [{
"letter": "A",
"garbageItem": ["阿司匹林"]
}, ..]
}
...
搜索功能的實(shí)現(xiàn)
搜索功能提供了文本搜索爵嗅,圖片識(shí)別搜索娇澎,語(yǔ)音識(shí)別搜索功能,垃圾分類基礎(chǔ)數(shù)據(jù)放在了小程序本地睹晒,文本搜索其實(shí)就是用文字去遍歷本地?cái)?shù)據(jù)匹配到了則展示出來(lái)趟庄,圖片和語(yǔ)音搜索最終其實(shí)也都是文本搜索,只不過(guò)一個(gè)是識(shí)別圖片得到文本伪很,一個(gè)是識(shí)別語(yǔ)音得到文本戚啥,這兩項(xiàng)能力依賴的百度AI平臺(tái),百度ai地址:https://ai.baidu.com/锉试,通過(guò)百度的接口可以識(shí)別圖片中的內(nèi)容以及語(yǔ)音中的內(nèi)容猫十,拿到文本內(nèi)容后剩下的事就跟文本搜索一樣了。-
微信小程序云開(kāi)發(fā)
近兩年在不同的場(chǎng)合或者一些文章經(jīng)常有看到提到serverless架構(gòu)呆盖,微信小程序和支付寶小程序也有基于云開(kāi)發(fā)這種模式拖云,提供了云函數(shù)、云存儲(chǔ)应又,云數(shù)據(jù)庫(kù)等宙项,簡(jiǎn)單來(lái)講就是可以不用服務(wù)端開(kāi)發(fā),前端直接操作db株扛,操作存儲(chǔ)尤筐,跟傳統(tǒng)模式開(kāi)發(fā)有一定的差別,這次也是借開(kāi)發(fā)這個(gè)小程序體驗(yàn)了下微信的云開(kāi)發(fā)洞就,比如我目前把搜索記錄保存到數(shù)據(jù)庫(kù)里面就是直接在前端操作db的盆繁,個(gè)人感覺(jué)適合全棧開(kāi)發(fā),對(duì)于輕量級(jí)應(yīng)用旬蟋,快速驗(yàn)證型應(yīng)用其實(shí)還是很高效的油昂,期待未來(lái)有更多場(chǎng)景可以嘗試。
微信小程序云開(kāi)發(fā) 最后還要提的幾個(gè)開(kāi)源項(xiàng)目,非常感謝從這幾個(gè)項(xiàng)目獲取到的幫助冕碟,如有版權(quán)或其他不妥之處稠腊,可以簡(jiǎn)書(shū)私信聯(lián)系我。
- 垃圾分類小程序 :
我其實(shí)就是基于該項(xiàng)目開(kāi)發(fā)鸣哀,很大程度借鑒了該項(xiàng)目,尤其是UI界面吞彤,主要差異點(diǎn)是我增加了語(yǔ)音識(shí)別我衬,基礎(chǔ)數(shù)據(jù)是根據(jù)另外一個(gè)開(kāi)源項(xiàng)目的數(shù)據(jù)加工處理的,比如前面提到的增加字母表分類饰恕,另外搜索邏輯該項(xiàng)目是基于云數(shù)據(jù)庫(kù)的數(shù)據(jù)搜索挠羔,我直接基于的本地json數(shù)據(jù)搜索,具體的分類頁(yè)面我增加了字母表索引等埋嵌。
https://github.com/qi19901212/Garbage - 垃圾分類基礎(chǔ)數(shù)據(jù)來(lái)源:
https://github.com/alexayan/garbage-classification-data - 首字母數(shù)據(jù)獲绕萍印:
https://github.com/hotoo/pinyin - 按字母展示以及點(diǎn)擊字母跳轉(zhuǎn)參考:https://github.com/icindy/wxSortPickerView