上周由于國慶小長假的緣故未能及時更新文章,在此說聲抱歉循衰,之后將繼續(xù)周更饿序。
好久沒有寫有關(guān)微信小程序的文章了,今天繼續(xù)講講小程序的一些容易踩到的“坑”羹蚣。
一、圖片上傳須使用wx.uploadFile()乱凿,而不是使用wx.request()
微信小程序?qū)iT提供了一個用于上傳文件的API顽素,那就是wx.uploadFile()。如果想要上傳圖片徒蟆,同樣得用該方法胁出,并且一般情況下都是要與wx.chooseImage()結(jié)合使用。通過wx.chooseImage()可以選擇本地圖片或者直接拍照而返回一個臨時的圖片路徑段审,再將這個臨時路徑傳入wx.uploadFile()中后通過第三方服務(wù)器返回線上路徑全蝶,這樣之后我們才能隨時獲取到這張圖片。
當(dāng)然,有時候我們也可能在提交表單的時候需要提交圖片抑淫,這時候我們才要用到wx.request()绷落,提交的圖片路徑就是通過wx.uploadFile()返回的線上路徑,而不是通過wx.chooseImage()返回的臨時路徑始苇。
這兩個方法的具體用法可以直接參考開發(fā)文檔:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-file.html#wxuploadfileobject砌烁。
二、微信小程序的加載動畫家族
1. 下拉刷新動畫
① onPullDownRefresh()
在 Page 中定義 onPullDownRefresh 處理函數(shù)催式,監(jiān)聽該頁面用戶下拉刷新事件函喉,需要用戶手動下拉才能觸發(fā)。
② enablePullDownRefresh
需要在config(文件后綴為.json)的window選項中設(shè)置enablePullDownRefresh為true后onPullDownRefresh()才有效荣月。
③ wx.startPullDownRefresh()
開始下拉刷新管呵,調(diào)用后觸發(fā)下拉刷新動畫,效果與用戶手動下拉刷新一致哺窄,使用該方法無需用戶手動下拉也能觸發(fā)下拉刷新動畫捐下。
④ wx.stopPullDownRefresh()
當(dāng)處理完數(shù)據(jù)刷新后,wx.stopPullDownRefresh可以停止當(dāng)前頁面的下拉刷新動畫堂氯。
2. 導(dǎo)航條加載動畫
① wx.showNavigationBarLoading()
在當(dāng)前頁面顯示導(dǎo)航條加載動畫蔑担。
② wx.hideNavigationBarLoading()
隱藏導(dǎo)航條加載動畫。
3. 提示框加載動畫
① wx.showLoading()
顯示 loading 提示框, 需主動調(diào)用wx.hideLoading()才能關(guān)閉提示框咽白。
② wx.hideLoading()
隱藏 loading 提示框啤握。
三、page.json只能設(shè)置 app.json 中的 window 配置項的內(nèi)容晶框,并且不能寫window這個鍵
這個“坑”看起來雖小排抬,但是一旦你一不小心踩到了,很可能很難發(fā)現(xiàn)問題所在授段,因為就算你在page.json中寫法與app.json一致蹲蒲,也就是說把window這個鍵也寫進去了,小程序并不會報錯侵贵,只是不會出現(xiàn)你想要的效果届搁。
比如,你只想在某個頁面實現(xiàn)下拉刷新效果窍育,那么你在該頁面的 config 中可以這樣配置:
{
"navigationBarTitleText": "下拉刷新動畫",
"enablePullDownRefresh": true
}
但是卡睦,如果你一不小心在前面加了個"window":
,那么問題就來了漱抓,頁面這時無法實現(xiàn)下拉刷新表锻,然后你說我明明配置了"enablePullDownRefresh": true
啊,接著就很有可能在這個小問題上糾結(jié)很久乞娄,所以需要謹(jǐn)記:page.json中不能寫window這個鍵瞬逊。
四显歧、微信小程序中含有Imoji圖片的用戶昵稱存儲問題如何解決?
這里涉及后端數(shù)據(jù)庫的問題确镊,有時候提交表單時需要獲取用戶昵稱并提交到數(shù)據(jù)庫士骤,但是有些用戶昵稱中會帶有Imoji圖片,這時直接保存到數(shù)據(jù)庫可能會出現(xiàn)無法識別的問題骚腥,解決方法是將數(shù)據(jù)庫字段格式改成utf8mb4格式就好敦间。