楊小姐的feelstyle,搗鼓5個月小程序,良心總結,跨年之作hahaha~!
所謂小程序通用能力,就是如果你要做小程序,以下問題你通通都會遇到哦,我總結如下,讓大家少踩坑,如有寫得不當之處請指出。
設計指南
微信官方提供的小程序界面設計指南和建議,附psd和sketch組件庫下載。
官方文檔:https://developers.weixin.qq.com/miniprogram/design/index.html?t=18111920
登錄授權
什么是登錄授權:
確切的說是使用微信號登錄小程序,需要用戶手動點擊同意授權,即可使用微信號登錄,便利性在于不用注冊,一鍵登錄!
接口文檔:https://developers.weixin.qq.com/miniprogram/dev/api/wx.login.html
授權后獲取的是微信什么信息?
獲取微信號、頭像、昵稱、性別、地區、綁定的手機號碼、openid、unionid。
怎么設計?
1、筆者的設計思路是:在需要獲取用戶信息的地方,如互動操作、表單交互、個人中心,而不是一打開小程序就讓授權,一打開就提示授權容易被用戶拒絕。這里需要特別強調常遺漏拒絕授權后的場景設計。可以參考「美團」系列小程序,都是在適當的時候提示授權。
2、但是筆者還是看見絕大多數小程序是在首次進入小程序就讓授權,如「步數寶」小程序授權,但是這個拒絕后是無法使用其它服務的。這種設計方式就是簡單粗暴,無腦設計,因為完全可以不用考慮拒絕后的場景設計。
「美篇」小程序也是首次登錄就讓授權,否則無法瀏覽任何界面信息,如下圖:
可以不用微信號登錄嗎?
可以,除了使用微信號登錄外還可以使用手機號碼和驗證碼登錄,如美團小程序的登錄界面有兩種選擇:
使用微信號登錄后可以退出登錄嗎?
1、大部分小程序都沒有設計退出登錄功能,理由可能就是不想讓用戶退出登錄,當用戶刪除小程序后需要重新登錄。
2、更甚有開發者這么設計,刪除后再打開不用重新授權,等于永遠都是登錄狀態,如「泰禾生活」小程序,感興趣的朋友可以去體會一下~!(ps:這是朋友公司的老板需求??)
3、當然也可以設計退出出口。
刪除小程序后用戶數據還在嗎?
1、如果用戶信息是存儲在微信緩存里,那么刪除小程序就沒有用戶數據了,筆者曾經玩一個切水果的小游戲,玩到300多關不小心刪除了小游戲,結果重新打開后發現數據沒了……所以刪除需謹慎,天黑路滑,你是猜不到偉大的開發者是怎么設計的。。
2、如果用戶信息是存儲在數據庫里,刪除后當然還在啦。
Openid和UnionID
什么是openid?
用戶的唯一標識,一個openid對應一個公眾號。
什么是unionid?
用戶的統一標識,同一用戶,對同一個微信開放平臺下的不同應用,unionid是相同的,即用戶帳號互通。
接口文檔:https://developers.weixin.qq.com/miniprogram/dev/api/uinionID.html
微信的用戶隱私策略:每個接入微信的應用(公眾號、APP)就像一個獨立的商場,用戶使用這些應用就像逛商場,商場用會員卡識別用戶,類似的,我們根據商場名字為每個用戶生成了一張專屬會員卡(openid),每張會員卡只能在對應的商場才能夠使用,你不能拿著沃爾瑪的會員卡去華潤萬家積分。這是一種安全的授權方式,如果沒有這個會員卡,直接暴露微信號,就相當于拿著身份證去逛商場,丟失一個會員卡號遠比丟失身份證號要安全。
那么問題來了,都是萬達集團,萬達大歌星與萬達商場希望做到會員卡通用。微信在這里做了一個打通機制,對于同一個企業,在用戶屬性里面加了一個企業屬性(UnionID),方便同一個企業在不同的產品中識別到同一個用戶。
這個機制伴隨著微信聯合登錄已經在微信開放平臺(open.weixin.qq.com)推出了。獲得了開放平臺認證的企業,可以綁定10個手機應用、10個網站、10個公眾號,他們對應的用戶信息也可以互聯互通。
強烈提示:對于開發團隊而言,在接入微信登錄之初,往往會忽視用戶的UnionID,只記錄了openid。這會導致后期賬號打通時候,需要用戶重新授權,運營成本增高,遇到此類問題的團隊不在少數。
獲取地理位置
獲取的是用戶的什么地理位置?
獲取用戶當前的微信地理位置、速度,調用此接口需要用戶授權。
接口文檔:https://developers.weixin.qq.com/miniprogram/dev/api/wx.getLocation.html
何時出現?
筆者的設計原則是:在需要獲取地理位置的頁面調用此接口,非首次進入就調用此接口。
小程序銷毀
微信主動銷毀
當小程序進入后臺,客戶端會維持一段時間的運行狀態,超過一定時間后(目前是5分鐘)會被微信主動銷毀。
自動銷毀
小程序緩存
什么是小程序緩存?
同瀏覽器緩存,保存在本地。
怎么清除緩存?
同一個小程序的開發版、體驗版、線上版的緩存是共用的,你需要同時刪除這三個版本的小程序,緩存才會被刪除。
不清除緩存就不能看見最新版小程序了嗎?
1、微信會固定一段時間后自動清除小程序緩存,如果沒清除緩存則不能馬上看到最新版的小程序;
2、如果想看到最新版的小程序可以手動刪除小程序,如果不想讓用戶手動清除緩存,可以添加更新提示,詳見下一條更新提示。
更新機制
冷啟動
小程序首次打開或銷毀后再次被打開,小程序冷啟動時,會檢查小程序是否有最新版本。如果有則將異步下載最新版本,但是仍將運行當前版本等到下一次冷啟動時再運行最新版本。
熱啟動
小程序打開后,在一段時間內(目前:5分鐘)再次被打開,此時會將后臺的小程序切換到前臺。
小程序迭代速度比較快,比如修復某個BUG,每次發布了新的代碼,更新不及時,著急的時候,得讓用戶刪除小程序再進入才可以。這時候就需要使用強制更新技術,調用wx.getUpdateManager API進行處理,這樣用戶打開小程序將會出現更新提示,就不用讓用戶手動刪除小程序啦。接口文檔:https://developers.weixin.qq.com/miniprogram/dev/api/wx.getUpdateManager.html?search-key=%E6%9B%B4%E6%96%B0
引導添加小程序
什么情況下引導?
在最能吸引用戶回頭率的業務場景中引導用戶添加小程序。
可以判斷用戶是否添加過當前小程序嗎?
因為微信沒有提供此接口,所以開發者無法判斷用戶是否添加過某小程序。
如何設計?
手動點擊「已添加小程序」或者「我知道了」后則不再彈出,如下圖:
公眾號關注組件
用戶掃碼打開小程序時,開發者可在小程序內配置公眾號關注組件,方便用戶快捷關注公眾號,實現一碼兩用使用場景。
開發文檔:https://developers.weixin.qq.com/miniprogram/dev/component/official-account.html
例:騰訊官方小程序「小經費」,在小程序首頁加入公眾號關注組件
壓縮圖片接口
用于前端壓縮圖片,可選壓縮質量。
接口文檔:https://developers.weixin.qq.com/miniprogram/dev/api/wx.compressImage.html?from=groupmessage&isappinstalled=0
小程序轉發
微信不提倡開發者誘導或強制用戶轉發至朋友圈,如轉發后才能解鎖某項功能等。
不自定義轉發圖片的情況下,默認會取當前頁面,從頂部開始,高度為 80% 屏幕寬度的圖像作為轉發圖片。
文檔說明:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html
小程序跳轉
在小程序里打開另外一個小程序
接口文檔:https://developers.weixin.qq.com/miniprogram/dev/api/wx.navigateToMiniProgram.html
返回到上一個小程序
只有在當前小程序是被其他小程序打開時可以調用成功。
接口文檔:https://developers.weixin.qq.com/miniprogram/dev/api/wx.navigateBackMiniProgram.html
內容安全
當小程序提供UGC內容時,需要接入內容安全接口,否則審核有可能不通過。
文字審核接口:https://developers.weixin.qq.com/miniprogram/dev/api/msgSecCheck.html
圖片審核接口:https://developers.weixin.qq.com/miniprogram/dev/api/imgSecCheck.html
模版消息
去「微信公眾平臺」設置模版,拿到模板ID和模版格式,然后進行開發。開發完成后用戶就可以在微信服務通知里接收到模版消息了。
開發文檔:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/template-message.html
服務通知
什么是服務通知?
可以理解為它是個推送消息的微信服務號,用于接收各個小程序的模版消息,對應技術是模版消息。
小程序不能隨意給用戶推送消息,只有當用戶跟小程序發生互動行為后,才具備推送通知的能力。
如何讓用戶與小程序發生互動行為?
1、支付,1次支付可推送3條,多次支付時推送條數獨立,支付后7天內有效;
2、提交表單,1次提交表單可推送1條,多次提交時推送條數獨立,表單提交后7天內有效。
注意事項:
1、用戶基本都不會關閉微信的消息推送,所以相比較 App推送和短信推送來說,小程序的推送觸達率會高很多。
2、但如果做的太過分了,惡意誘導用戶進行觸發操作令用戶反感,會有被用戶拒收該小程序模版消息的風險。
如何設計?
很多開發者會把推送的主題字號加大,也可以加上五彩斑斕的顏色,或者給內容加一些 Emoji,意圖制造出Duang~ Duang~ Duang~的效果,吸引用戶的注意力。
客服消息
小程序內置客服,點擊這里查看詳情。
開發文檔:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/customer-message/customer-message.html
用戶反饋
1、可用「騰訊吐個槽」小程序快速建立小程序用戶反饋平臺,對應技術是小程序跳轉。
官網:https://tucao.qq.com/
2、也可使用小程序插件來建立,請在「微信公眾號平臺-插件」里搜索「騰訊吐個槽」。
附近的小程序
在「微信公眾平臺」開啟附近的小程序后,用戶可以在「微信-發現-小程序-附近的小程序」里查找到。
小程序審核
小程序審核一般24H內會審核通過,但是如果你的小程序涉及社交、提現、紅包等內容時則需要當地工信部二次審核,審核時間7-14日,請開發者做好心理準備,避免在預計的上線時間時拉閘。
圖片縮放和裁剪
https://developers.weixin.qq.com/miniprogram/dev/component/image.html