基於微信小程式的系統開發準備工作
騰訊推出微信小程式也有一段時間了,在各種行業裡面也都掀起一陣陣的熱潮,很多APP應用被簡化為小程式的功能迅速推出,同時也根據小程式的特性推出各種獨具匠心的應用,相對傳統的APP來說,微信小程式確實能夠大大降低開發成本和難度,但也意味著需要掌握整個微信小程式的各種介面功能、應用場景等相關技術點,本篇隨筆先從大的方面來介紹微信小程式開發的一些知識,如架構設計、技術路線 、工具準備等方面做一些淺薄的介紹,希望大家也有所收益,有所借鑑,則善莫大焉。
1、小程式的統一架構設計
在我們開發各種應用的時候,總是希望能夠先從大的方向上探索整個業務場景,儘可能的不用造成後期的返工或者推倒重來,這種代價是非常高昂的,因此前期花些時間來做一下整體的規劃,然後在具體化各個業務模組的開發才是比較合理的做法。
業務資料的集中化,是很多企業的在資料化浪潮中賴以生存的核心,各行各業都有自己的業務資料,有些企業掌握著重要的行業資料,一旦資料成了規模,就可以對外提供介面,實現資料業務的營收,也是一項非常不錯的收入,同時也是企業的核心競爭力。
不管資料是部署在阿里雲、騰訊雲等雲產品上,還是部署在自家的伺服器上,都是資料集中化的表現之一,圍繞著資料集中化,那麼各種應用就有一個統一的API介面的需求,這種統一API可以稱為統一平臺,也可以稱為統一介面,都有不同的稱呼。
隨著基於JSON格式的Web API的廣泛應用,越來越多的企業採用Web API介面服務層,作為統一介面的核心所在,也成為Web API核心層。基於JSON格式的介面,可以廣泛地、跨平臺的應用於IOS、安卓等移動端,也可以應用在常規的Web業務系統,Winform業務系統、微信應用、微信小程式等方方面面,因此企業內部形成自己是的一套Web API標準和詳細的文件非常重要,一旦完善了,就可以供各個業務場景使用,這些業務可以外包給其他軟體公司或者團隊,各自分離開發,而自己內部則只需要花費精力來統一維護Web API核心層和提高整個核心層的功能介面穩定、快取處理等方面事情即可。其他業務團隊開發的系統只需要遵循整個大介面平臺的統一規劃,完成各自的功能需求即可,不會造成資料庫的不一致,更不會讓某家公司掌握核心的技術資源,尾大不掉的尷尬情形。
基於上面的分析,我們企業最終圍繞著Web API核心層做了不同的業務應用,如下圖所示。
基於Web API核心層的效能考慮,我們一般它們分開處理,一般後端有一個數據庫應用伺服器,一個Web API伺服器,甚至可能還有一個專門處理FTP檔案的檔案伺服器(可選),如果還需要建立Web後臺應用,可能還需要一個或者多個Web 應用伺服器,從而分散伺服器的IO壓力和計算壓力,如果還需要考慮更加周全一些,還需要一個MQ伺服器處理重要訂單資料、快取伺服器儲存快取資料、負載均衡伺服器等等。
最簡化的要求,至少有一個雲端資料庫伺服器和一個Web API伺服器,這些伺服器群構成一個Web API一體化應用的場景,如下所示。
考慮到Web API的分層,我們可以通過下圖來了解具體的分層結構,從而為我們實際的開發做一些鋪墊。
2、小程式的開發環境準備
微信小程式的開發準備,我們首先需要在官網上註冊賬號,然後繫結自己的認證的賬號即可,這些我可以參考https://mp.weixin.qq.com/debug/wxadoc/dev/ 進行了解即可 ,不在贅述。
同時裡面的文件包括了小程式開發的UI規範、架構說明、元件及API的介面說明等內容,建議詳細閱讀。
我們開發小程式,很多情況下需要利用微信開發者工具(開發者工具 ),工具集成了開發除錯、程式碼編輯及程式釋出等功能。啟動工具時,開發者需要使用已在後臺繫結成功的微訊號掃描二維碼登入,後續所有的操作都會基於這個微信帳號。
不過,為了更好提高開發工具,我們建議程式碼編輯還是利用比較專業化的前端開發工具較好,結合上面微信開發者工具進行編譯出來即可,推薦的前端開發工具還是老牌的Sublime Text較好,介面效果如下所示。
這個工具可以在百度搜索獲取對應最新的版本下載即可。
預設來說,這個工具並不能識別小程式自定義的字尾名,因此我們需要開啟對應的wxml,wxss這些檔案,我們關聯下即可,畢竟這兩個檔案分別是HTML、CSS3格式的檔案。
具體設定操作如下,先開啟wxml,wxss這些檔案,然後從右下角單擊PlainText位置,從彈出列表裡面選擇正確的格式。
從彈出列表裡面首先選擇Open all with current extensioin as ***這個選單,然後選擇對應的HTML,或者CSS3格式即可完成後綴名的設定,下次開啟會自動關聯正確格式的字尾名了。
上面的操作只是設定了檔案的格式,對於微信小程式自定義的標籤,以及一些特有的JS操作,還是需要費一些工作,好在已經有好心人為我們專門做了小程式的Sublime Text外掛。
微信小程式的snippets(sublime通過 “Sublime-snippet” 實現快速補全程式碼),外掛下載的連結:https://github.com/Abbotton/weapp-snippet-for-sublime-text-2-3
下載上方連結提供的snippet
將紅色資料夾直接放入sublime的安裝目錄 PackagesUser 下,重啟sublime即可。
同時,JS的模組也是一樣的處理,可以快速錄入程式碼段。
輸入apirequest即可獲得快速錄入的程式碼段,如下所示。
整個snippet的列表包含下面幾個部分,分別使用w開始或者api開始,避免衝突。
snippet 列表
為了防止和其他 snippet 衝突,本 snippet 中的所有WXML 標籤觸發命令都以'w'開頭,所有 API相關命令都以'api'開頭.
WXML snippet
命令 | 對應元件或命令 |
---|---|
wapp | 註冊小程式 |
wblockif | block wx:if |
wbutton | button |
wcheckbox | checkbox |
wcheckboxgroup | checkbox-group |
wcanvas | canvas |
wimage | image |
wtext | text |
wview | view |
wviewbind | view 事件 |
wmap | map |
wnavigator | navigator |
wexport | 模組化 |
wfor | for |
wform | form |
wradio | radio |
wradiogroup | radio-group |
wslider | slider |
wicon | icon |
winput | input |
wtextarea | textarea |
winfutautofocus | input |
wvideo | video |
winputfocus | input |
wlabel | label |
wpage | Page() |
wprogress | progress |
wscrollview | scroll-view |
wswitch | switch |
wtemplate | template |
wswiper | swiper |
wviewelif | view |
wviewelse | view |
wviewif | view |
小程式API snippet
命令 | 對應元件或命令 |
---|---|
apirequest | 網路請求 |
apiuploadfile | 上傳檔案 |
apidownloadfile | 下載檔案 |
apiconnskt | 建立 WebSocket 連結 |
apionsktopen | 監聽WebSocket連線開啟 |
apionskterr | 監聽WebSocket錯誤 |
apisendsktmsg | 使用 WebSocket傳送資料 |
apionsktmsg | 接受訊息推送 |
apicloseskt | 關閉WebSocket連線 |
apionsktclose | 監聽WebSocket關閉 |
apichooseimg | 選額圖片 |
apipreviewimg | 預覽圖片 |
apigetimginfo | 獲取圖片資訊 |
apistartrecord | 開始錄音 |
apistoprecord | 結束錄音 |
apiplayvoice | 播放語音 |
apipausevoice | 暫停播放語音 |
apistopvoice | 結束播放語音 |
apigetbgaudioplayerstate | 獲取音樂播放狀態 |
apiplaybgaudio | 播放音樂 |
apipausebgaudio | 播放暫停音樂 |
apiseekbgaudio | 控制音樂播放進度 |
apistopbgaudio | 停止播放音樂 |
apionbgaudioplay | 監聽音樂播放 |
apionbgaudiopause | 監聽音樂暫停 |
apionbgaudiostop | 監聽音樂停止 |
apisavefile | 儲存檔案 |
apigetsavedfilelist | 檢視儲存檔案列表 |
apigetsavedfileinfo | 檢視儲存檔案資訊 |
apirmfile | 刪除快取檔案 |
apiopendoc | 新開頁面開啟文件 |
apichoosevideo | 視訊 |
apisetstorage | 覆蓋本地內容 |
apisetstoragesync | 同步覆蓋本地內容 |
apigetstorage | 獲取指定 key 對應的內容 |
apigetstoragesync | 同步獲取指定 key 對應的內容 |
apiclearstorage | 清理本地資料 |
apiclearstoragesync | 同步清理本地資料 |
apirmstorage | 刪除本地資料 |
apirmstoragesync | 同步刪除本地資料 |
apigetstorageinfo | 獲取本地資料資訊 |
apigetstorageinfosync | 同步獲取本地資料資訊 |
apigetlocation | 獲取位置 |
apiopenlocation | 檢視位置 |
apichooselocation | 開啟地圖選擇位置 |
apigetnetworktype | 網路狀態 |
apigetsysinfo | 系統訊息 |
apiaccelerometerchange | 重力感應 |
apicompasschange | 羅盤 |
apisetnavbartitle | 動態設定導航條文字 |
apishownavbarloading | 顯示導航條載入動畫 |
apihidenavbarloading | 隱藏導航條載入動畫 |
apihidekeyboard | 收起鍵盤 |
apinavigateto | 保留當前頁面並跳轉 |
apiredirectto | 關閉當前頁面並跳轉 |
apinavigateback | 返回上一個頁面 |
apilogin | 登入 |
apichecksession | 檢測session |
apigetuserinfo | 使用者資訊 |
apipayment | 微信支付 |
apishowtoast | 互動反饋 |
apihidetoast | 互動反饋 |
apishowmodal | 互動反饋 |
apihidemodal | 互動反饋 |
apishowactionsheet | 互動反饋 |
getSystemInfoSync | 同步獲取系統資訊 |
apiphonecall | 撥打電話 |
3、小程式的Https協議的SSL證書
我們知道小程式為了提高安全性,做了很多方面的限制,其中有一條就是要求使用HTTPS這種安全性協議來獲取資料,如下所示。
因此要求我們的Web API介面必須統一使用HTTPS(其實這也是常規的做法),這就要求我們必須在網站提供443埠服務,需要加入HTTPS證書,這種證書可以從雲服務商上購買,如騰訊雲、阿里雲上的雲伺服器後臺都提供了購買證書服務的通道,當然HTTPS證書年費可不算便宜,但我們也可以使用簡單的免費證書先用著。
以阿里云為例,使用阿里雲賬號登陸後,在【控制檯】【安全雲盾】【證書服務】裡面進行申請。
然後選擇購買證書,在購買證書介面上,選擇免費的證書,錄入相關的資料後提交即可。
購買後,會在訂單列表裡面有一個待稽核的訂單,如下所示,等待稽核通過即可使用。
有了這些準備,我們就可以在伺服器上繫結對應的埠,提供HTTPS協議的介面訪問了。
剩下的事情就是關注我們Web API核心介面上的事情,這個方面可以在另外一個主題上進行介紹。
相關推薦
微信小程式的開發準備及其除錯工具
一、微信小程式 微信公眾平臺 https://mp.weixin.qq.com/cgi-bin/wx 二、下載開發工具 https://developers.weixin.qq.com/miniprogram/dev/de
基於微信小程式的系統開發準備工作
騰訊推出微信小程式也有一段時間了,在各種行業裡面也都掀起一陣陣的熱潮,很多APP應用被簡化為小程式的功能迅速推出,同時也根據小程式的特性推出各種獨具匠心的應用,相對傳統的APP來說,微信小程式確實能夠大大降低開發成本和難度,但也意味著需要掌握整個微信小程式的各種介面功能、應
多多客小程式(doodoo)釋出 1.0,基於 node, vue 開發的微信小程式系統
doodoo 多多小程式開源版 API介面檔案 server 環境需求node >= 8.0 mysql 配置檔案 .env # 應用配置 APP_PORT=3001 APP_HOST=http://127.0.0.1:3001 # 驗證碼 VERIFY_MAXIP=36 /
多多小程式(doodoo)釋出1.0,基於node,vue開發的微信小程式系統
多多小程式(doodoo)釋出1.0,基於Doodoo.js -- 中文最佳實踐Node.js Web快速開發框架,支援Koa.js, Express.js中介軟體。包含多項功能改進,及Bug修復。 更新內容: 1.【新增】新增支援自研baas系統模組化開發(類似於小程式雲開發方式) 2.【新增】新
基於微信小程式開發的demo
先上開源地址: 最近一直在研究微信小程式,跟隨網際網路新聞的熱潮 從9月29日開發到現在,也算是把大部分API和元件都用到了 這個專案之所以想到把它開源,是因為之前在一個2000人小程式交流群中,發現很多demo都很簡單 那麼既然他們做的很簡單,自然是引領很
基於微信小程式的校園二手商城設計與開發
時間過得可真快啊,轉眼間大學四年就結束了,人總是到了要分別的時候才懂得去懷念過去啊。前段時間弄完了畢業論文,最近在導師實驗室搬磚,一直沒時間整理,今天終於有時間,所以想把畢設給整理一下,首先宣告這個畢設做的很一般哈,給大家樂一下,也算是送給自己的畢業禮物吧正文如下:軟體功能及
微信小程序的開發準備
logs ges 產品 nbsp 一個 lan 屬於 根據 公眾號 _帳號申請 地址: https://mp.weixin.qq.com/ 小程序賬號,是隸屬於微信公眾號的一個產品組件。 所以根據不同的需求,註冊合適的賬號類型。 未完待續
【※墨痕】微信小程式的開發步驟2
1、登陸微信公眾平臺後,點選小程式,進入小程式開發,找到下面的工具,點選進去微信開發者工具 2、點選下載微信小程式開發工具
微信小程式雲開發雲控制檯匯入json檔案
雲開發 往雲開發控制檯裡直接匯入json檔案 資料格式必須是這種格式的 比如是 { "month": 1, "active": "游泳" } { "month"
微信小程式雲開發及一些微信小程式的回顧個人筆記
官方自帶模板 第一個資料夾是一個 雲函式|專案的名字 第二個資料夾是迷你程式 裡面有json js wxss 和三個資料夾 images pages style  
使用高德地圖微信小程式SDK開發案例-輸入提示(附原始碼)
閒來無事寫一篇使用高德地圖的微信小程式SDK開發應用的例項。 接下來先看需求: 我們要做的是,根據使用者輸入的關鍵詞,給出相應的提示資訊,列表中顯示地方的名稱,地方的詳細地址以及對應的經緯度座標。 當然在UI上我們儘量做到理想的視覺與較好的使用者體驗。 最終的效果我們希望是像這樣的,
帶你第一時間體驗微信小程式雲開發功能
9.10號微信重磅推出小程式雲開發功能,該功能方便了很多邏輯上的問題,至於安全嘛,騰訊的,如果騰訊不看你的,沒人看得到,話不多說,跟著騰訊文件進行第一個demo ,首先要升級一個小程式開發者工具版本,更新到最新(官方下載)。 1、下載到最新的工具之後開啟,先建立一個儲存我們自己
微信小程式分享開發
Page.onShareAppMessage(Object) 在 Page 中定義 onShareAppMessage 事件
【基於微信小程式的社群電商平臺】需求分析心得——小豆芽
一、專案內容 基於微信小程式,做一個社群電商平臺,抓住社群電商的特點,做出特色,與微信整合,實現商品的個性化釋出,以及個性化營銷。 個性化釋出:使用者可以在應用上直接釋出自己的商品,通過搜尋心願單可以檢視當前買家使用者以及他們對商品的預期價格,在此便可建議賣家合理定價,尋求市場;作為買家,可以在當
微信小程式雲開發之資料分頁雲函式
微信小程式雲開發之資料分頁雲函式 2018-10-06 20:23:28 微信小程式的雲開發可以自己對資料庫進行操作而不需要後臺,那麼很常見的一
資料庫設計心得——基於微信小程式的社群電商平臺
資料庫,是一個專案的靈魂,資料庫設計得合理,接下來的開發工作也會變得簡捷有序。而說到資料庫的設計,說它難吧,可不就是設計一張張表嘛,可說它簡單吧,每一張表裡面放一些什麼東西?表與表之間的聯絡又該是怎麼樣?這些都是要考慮的東西,每一個改動都決定著後面工作的難易。於是,我們的第一個專案的資料庫,就是在這樣一種
幾款微信小程式快速開發框架
簡介:微信小程式是一種全新的連線使用者與服務的方式。那麼怎樣才能快速開發一個小程式呢?下面小編為大家介紹幾款小程式快速開發框架。WePY騰訊官方開源的小程式元件化開發框架,目前有1.4w+Star ,一直在更新著,社群活躍 ... 微信小程式是一種全新的連線使用者與服務的
微信小程式前端開發踩坑(一)
之前由於不瞭解微信小程式的整個的執行開發機制,走了很多的彎路,腦子靈光的可能不會遇到,這個主題系列的帖子希望可以幫助到像我一樣理解能力慢的孩子。 不論是開發微信小程式還是說學習任何一門程式語言,最重要的一點是要夯實基礎,不是隻是去看看概念,從hello word開始就要好好的去對待每一行程式碼,軟工是工科,
微信小程式雲開發--修改雲資料庫中的資料
小程式程式碼中無法直接修改他人建立的資料記錄 例如:資料庫表中的_openid欄位是自動生成的,哪個使用者建立的記錄這個openid就是使用者的openid,雲資料庫的許可權分配也是根據openid來進行的。 解決方案: 第一步:建立雲函式,在函式中編寫修改資
微信小程式-雲開發(手記)
微信小程式-雲開發(手記) 1、建立data.json檔案 注意以下幾點要求: 入門示例: init方法的env:預設環境配置,傳入字串形式的環境 ID(理解為資料庫)可以指定所有服務的預設環境(意思就是全域性使用一個數據庫),傳入物件可