上周由于國慶小長假的緣故未能及時更新文章,在此說聲抱歉,之后將繼續周更。
好久沒有寫有關微信小程序的文章了,今天繼續講講小程序的一些容易踩到的“坑”。
一、圖片上傳須使用wx.uploadFile(),而不是使用wx.request()
微信小程序專門提供了一個用于上傳文件的API,那就是wx.uploadFile()。如果想要上傳圖片,同樣得用該方法,并且一般情況下都是要與wx.chooseImage()結合使用。通過wx.chooseImage()可以選擇本地圖片或者直接拍照而返回一個臨時的圖片路徑,再將這個臨時路徑傳入wx.uploadFile()中后通過第三方服務器返回線上路徑,這樣之后我們才能隨時獲取到這張圖片。
當然,有時候我們也可能在提交表單的時候需要提交圖片,這時候我們才要用到wx.request(),提交的圖片路徑就是通過wx.uploadFile()返回的線上路徑,而不是通過wx.chooseImage()返回的臨時路徑。
這兩個方法的具體用法可以直接參考開發文檔:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-file.html#wxuploadfileobject。
二、微信小程序的加載動畫家族
1. 下拉刷新動畫
① onPullDownRefresh()
在 Page 中定義 onPullDownRefresh 處理函數,監聽該頁面用戶下拉刷新事件,需要用戶手動下拉才能觸發。
② enablePullDownRefresh
需要在config(文件后綴為.json)的window選項中設置enablePullDownRefresh為true后onPullDownRefresh()才有效。
③ wx.startPullDownRefresh()
開始下拉刷新,調用后觸發下拉刷新動畫,效果與用戶手動下拉刷新一致,使用該方法無需用戶手動下拉也能觸發下拉刷新動畫。
④ wx.stopPullDownRefresh()
當處理完數據刷新后,wx.stopPullDownRefresh可以停止當前頁面的下拉刷新動畫。
2. 導航條加載動畫
① wx.showNavigationBarLoading()
在當前頁面顯示導航條加載動畫。
② wx.hideNavigationBarLoading()
隱藏導航條加載動畫。
3. 提示框加載動畫
① wx.showLoading()
顯示 loading 提示框, 需主動調用wx.hideLoading()才能關閉提示框。
② wx.hideLoading()
隱藏 loading 提示框。
三、page.json只能設置 app.json 中的 window 配置項的內容,并且不能寫window這個鍵
這個“坑”看起來雖小,但是一旦你一不小心踩到了,很可能很難發現問題所在,因為就算你在page.json中寫法與app.json一致,也就是說把window這個鍵也寫進去了,小程序并不會報錯,只是不會出現你想要的效果。
比如,你只想在某個頁面實現下拉刷新效果,那么你在該頁面的 config 中可以這樣配置:
{
"navigationBarTitleText": "下拉刷新動畫",
"enablePullDownRefresh": true
}
但是,如果你一不小心在前面加了個"window":
,那么問題就來了,頁面這時無法實現下拉刷新,然后你說我明明配置了"enablePullDownRefresh": true
啊,接著就很有可能在這個小問題上糾結很久,所以需要謹記:page.json中不能寫window這個鍵。
四、微信小程序中含有Imoji圖片的用戶昵稱存儲問題如何解決?
這里涉及后端數據庫的問題,有時候提交表單時需要獲取用戶昵稱并提交到數據庫,但是有些用戶昵稱中會帶有Imoji圖片,這時直接保存到數據庫可能會出現無法識別的問題,解決方法是將數據庫字段格式改成utf8mb4格式就好。