微信小程序初探

微信小程序越來(lái)越火爆了,從7月開始,公司安排我寫微信小程序。雖然,之前對(duì)這一塊比較感興趣,也學(xué)習(xí)了一些資料,但是,真正開始寫,還是遇到了很多困難。這些坑,一部分是由于相關(guān)知識(shí)不是很熟悉,另一部分是因?yàn)?,小程序剛剛推出,坑確實(shí)比較多。理論上來(lái)說(shuō),應(yīng)該及時(shí)的把遇到的坑記錄下來(lái),無(wú)奈實(shí)在太懶了,拖到現(xiàn)在才開始寫第一篇

這一篇要寫什么

這一篇主要是寫寫在開發(fā)過(guò)程中遇到的編寫代碼之外的問(wèn)題。因?yàn)榫帉懘a么,文檔中已經(jīng)寫的非常清楚了,如果遇到 HTML、JS、CSS 這方面的問(wèn)題,可以去查找相應(yīng)的資料。由于主要工作是 iOS 開發(fā),并不擅長(zhǎng) web 開發(fā)這方面,所以就不要獻(xiàn)丑了。因此,這一篇想記錄一下,從開發(fā)準(zhǔn)備到審核上線以及后續(xù)更新的過(guò)程。

微信開發(fā)工具的使用

這個(gè)沒(méi)啥好說(shuō)的,官方文檔介紹的非常詳細(xì)了。但是,我比較喜歡用 Visual Studio Code 呀,所以折騰了一下,用 VS Code 寫小序,微信開發(fā)者工具僅僅作為調(diào)試使用。
關(guān)于 VSCode 的配置,打算單獨(dú)寫一篇文章來(lái)介紹,在這里就不多說(shuō)了。
微信開發(fā)工具有一個(gè)很大的優(yōu)點(diǎn),他監(jiān)控了文件的變化,只要在 VSCode 中保存一下,他就會(huì)重新編譯運(yùn)行小程序,調(diào)試起來(lái)還是非常便捷高效的。有點(diǎn)小問(wèn)題就是,如果代碼運(yùn)行到斷點(diǎn)處,直接重新編譯運(yùn)行,似乎存在死鎖的現(xiàn)象,這樣干的次數(shù)多了,整個(gè)小程序就失去響應(yīng)了,必須強(qiáng)制退出后重啟。我想,這個(gè)問(wèn)題隨著更新會(huì)解決的吧。

多用戶協(xié)作

八月之前,多用戶協(xié)作做的很差,幾乎任何操作都要由管理員來(lái)完成,完全不能滿足開發(fā)測(cè)試的需求。八月之后,可以給用戶單獨(dú)設(shè)置權(quán)限,這樣就比較好用了。把公司的產(chǎn)品、測(cè)試、運(yùn)營(yíng)設(shè)置為開發(fā)者之后,可以直接把微信開發(fā)工具的調(diào)試二維碼發(fā)給他們,讓他們能及時(shí)看到正在開發(fā)的最新版本。

已經(jīng)失效了,大家不用掃了
已經(jīng)失效了,大家不用掃了

管理員登錄小程序后臺(tái)(微信公眾平臺(tái))后,在用戶身份里面可以給微信用戶設(shè)置不同的身份。
DingTalk20170827160810-2017827

上圖可以看到,同事們都具有不同權(quán)限

在開發(fā)工作中,同事們都非常配合我,在此對(duì)同事們表示感謝!

項(xiàng)目管理

項(xiàng)目管理當(dāng)然是用大名鼎鼎的 git 管理代碼,使用微信開發(fā)者工具自帶的項(xiàng)目管理打開項(xiàng)目。
有一點(diǎn)需要注意,微信開發(fā)者工具的項(xiàng)目,指的是磁盤上的一個(gè)工作目錄,想添加項(xiàng)目,直接把項(xiàng)目路徑指向磁盤的工作目錄就好了。名稱也可以隨便起,這里的項(xiàng)目名稱、appid 等內(nèi)容,不會(huì)保存到工作目錄里,也不會(huì)同步到 git 中。


DingTalk20170827161922-2017827

需要?jiǎng)h除項(xiàng)目,直接點(diǎn)刪除按鈕就可以了,并不會(huì)刪除磁盤上的代碼。


DingTalk20170827162125-2017827

通常,公司申請(qǐng)小程序需要走一定流程,可能會(huì)比開發(fā)工作慢,這里可以用個(gè)人的名義申請(qǐng)一個(gè)小程序,并使用個(gè)人小程序的 appid 進(jìn)行先期開發(fā),等公司申請(qǐng)小程序完成后,在開發(fā)者工具中刪除并重新建立項(xiàng)目,替換 appid 就可以了。
只要不涉及支付等權(quán)限問(wèn)題,個(gè)人小程序的 appid 不會(huì)影響到開發(fā)工作。

調(diào)試與測(cè)試

微信小程序會(huì)限定訪問(wèn)地址,初期似乎只可以添加5個(gè),后來(lái)增加到了10個(gè)。記得將自己的服務(wù)器地址添加進(jìn)去哦。


DingTalk20170827162554-2017827

image 的請(qǐng)求是不限制資源地址的,例如 wxss 中為 background 設(shè)置 src,或者 image 控件顯示圖片,可以訪問(wèn)上圖列表之外的地址。
這里比較坑的就是,只能添加網(wǎng)址,不能添加 ip,導(dǎo)致訪問(wèn)測(cè)試服務(wù)器有一定困難。大概有三種方式可以解決:

  1. 在微信開發(fā)者工具中,選中"開發(fā)環(huán)境不校驗(yàn)請(qǐng)求域名、TLS 版本以及 HTTPS 證書"。然后在手機(jī)中,打開小程序調(diào)試,就可以訪問(wèn)任意服務(wù)器了。
    但是,打上勾以后,往往忘記了切換回來(lái)。有一次,我提交審核的代碼中,填寫的訪問(wèn)地址是內(nèi)網(wǎng) ip 哈哈。

  2. 可以使用 nginx 等反向代理。
    這樣做,就不需要在編碼的過(guò)程中切換訪問(wèn)地址了。雖然寫一個(gè)全局地址切換的工具很容易,但是經(jīng)常忘記切換不是嗎。
    使用反向代理,只要訪問(wèn)代理服務(wù)器,就可以自動(dòng)的代理到測(cè)試服務(wù)器上面。但是有個(gè)問(wèn)題就是,運(yùn)營(yíng)、測(cè)試等同事往往不會(huì)給手機(jī)設(shè)置代理服務(wù)器,教他們比較困難。

  3. 可以在內(nèi)網(wǎng)中搭建一個(gè)域名解析服務(wù)。
    這種玩法比較高級(jí)了,我也沒(méi)有試過(guò),只是一種設(shè)想,有興趣的童鞋們可以試試。

審核與上線

賬號(hào)申請(qǐng)主要是運(yùn)營(yíng)同事完成的,我主要參與了上傳項(xiàng)目審核以及項(xiàng)目發(fā)布的工作。根據(jù)最近的情況來(lái)看,審核工作時(shí)間不定。
七月中旬,我們發(fā)布了一個(gè)小程序,初次審核只用了三個(gè)小時(shí)。八月中旬,我們發(fā)布第二個(gè)小程序的時(shí)候,初次審核用了整整五天,結(jié)果讓我們錯(cuò)過(guò)了項(xiàng)目預(yù)期發(fā)布的時(shí)間,參與這個(gè)項(xiàng)目的小伙伴都感覺(jué)不好了。
項(xiàng)目初次審核通過(guò)后,再次更新就比較快了,一般在1-3個(gè)小時(shí)之內(nèi)就可以審核通過(guò)。
以后開發(fā)的過(guò)程中,根據(jù)審核時(shí)間安排好開發(fā)計(jì)劃就好了。
根據(jù)官方公布的時(shí)間,審核工作在七個(gè)工作日內(nèi)完成……感覺(jué)說(shuō)了跟沒(méi)說(shuō)一樣,絕對(duì)是霸王條款。希望以后能根據(jù)審核同學(xué)的工作安排,公布一個(gè)近期平均審核時(shí)間給我們參考。
審核完成之后,微信上會(huì)收到一個(gè)通知,這時(shí)候還需要到后臺(tái)去手動(dòng)上線,希望可以增加一個(gè)審核通過(guò)后自動(dòng)上線的選項(xiàng)。

小程序的頭像和名稱

小程序頭像每個(gè)月可以更改5次,更改完成后即時(shí)生效,不用重新提交與發(fā)布代碼。
更改名稱就比較坑了,需要交300元微信認(rèn)證費(fèi)用,必須要注意的是,認(rèn)證申請(qǐng)表上的名稱,就是認(rèn)證通過(guò)后顯示的名稱。我們第一次使用這個(gè)功能的時(shí)候,以為認(rèn)證通過(guò)了才能改名,申請(qǐng)表上寫的名稱是舊名稱,白白損失了300元認(rèn)證費(fèi)用。
認(rèn)證過(guò)程中,發(fā)生任何情況,認(rèn)證費(fèi)用不退回。
八月中旬,微信上線了一個(gè)公眾號(hào)申請(qǐng)小程序的功能。已經(jīng)認(rèn)證的公眾號(hào),可以直接申請(qǐng)小程序賬戶,并且申請(qǐng)下的小程序與公眾號(hào)之間是關(guān)聯(lián)好的。走這個(gè)渠道,可以解決很多時(shí)間和費(fèi)用。

數(shù)據(jù)統(tǒng)計(jì)

小程序的數(shù)據(jù)統(tǒng)計(jì)做的比較好,雖然具體功能與 Google Analytics 相比弱一些,但是能看到許多微信掌握的用戶信息。
埋點(diǎn)的時(shí)候,可以直接在微信后臺(tái)埋點(diǎn),也可以使用代碼埋點(diǎn)。
不過(guò),代碼埋點(diǎn)的 api 沒(méi)有經(jīng)過(guò)什么封裝,所需要傳輸?shù)膮?shù),都需要自己寫,還是后臺(tái)埋點(diǎn)方便一些。
后臺(tái)埋點(diǎn),可以不影響代碼的情況下添加統(tǒng)計(jì)點(diǎn),也不需要重新上傳程序。估計(jì)是小程序 AOP 的方式對(duì)代碼進(jìn)行過(guò)處理吧,這種設(shè)計(jì)挺棒的。
只不過(guò),添加統(tǒng)計(jì)點(diǎn)的時(shí)候,需要考慮到具體代碼,因此,還是必須由程序員來(lái)完成工作?,F(xiàn)在,程序員埋的點(diǎn),運(yùn)營(yíng)同學(xué)經(jīng)常抱怨看不懂……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容