1. 項目中引入vant ui組件庫,組件路徑報錯Component is not found in path "static/vantUi/button/index" (using by "pages......:
2. 引入tabBar圖片時,將static前的../去掉;“static/images/home.png”
3. 路由跳轉及帶參/獲取參數
// 跳轉
const url = '../order-sure/main?type=1'
wx.navigateTo({
url: url
})
// 獲取參數
onLoad: function(option){
this.active = option.type
}
4. 登錄
wx.getUserInfo()
不能彈授權框
- 原因:某次小程序api的更新中,微信官方調整了這個方法的使用。根據微信官方解釋,
wx.getUserInfo()
可以彈授權框是之前小程序框架不完善導致的bug,我們頻繁的使用wx.getUserInfo()
來調起授權框非常影響用戶體驗,違背了他們設計這個方法的初衷。 - 解決:使用
<button open-type="getUserInfo" bindgetuserinfo="onGotUserInfo">獲取用戶信息</button>
來調起微信授權。
5.授權
有時授權信息會解密失敗
- 原因:微信更改授權方式後,我們只能通過
button
來進行授權的彈窗,授權後通過回調來獲取加密的數據,在這個回調中再調用wx.login()
接口獲取code
時就會出現這個問題。通過button
獲取到的加密數據是上一次登錄的session_key
加密的,我們拿到加密數據後再進行wx.login()
就會刷新登錄狀態,導致session_key
改變,所以就會解密失敗。 - 解決:(1)在點擊
button
的時候調用wx.login()
方法。
(2)如果是在回調中使用wx.login()
方法,那麼在wx.login()
方法的回調中使用wx.getUserInfo()
接口重新獲取加密的數據。 -
// 可以通過 wx.getSetting 先查詢一下用戶是否授權了 "scope.record" 這個 scope wx.getSetting({ success(res) { if (!res.authSetting['scope.record']) { wx.authorize({ scope: 'scope.record', success () { // 用戶已經同意小程序使用錄音功能,後續調用 wx.startRecord 接口不會彈窗詢問 wx.startRecord() } }) } } })
6.交互
-
下拉刷新時ios會出現頁面瞬間向上彈出的bug
- 原因:下拉刷新時請求了接口,接口使用了
wx.showLoading()
。 - 解決:請求接口時不要使用
wx.showLoading()
- 原因:下拉刷新時請求了接口,接口使用了
-
wx.showToast()
顯示時間和設定時間不一致- 原因:一般是
wx.showLoading()
和wx.showToast()
連用導致的,wx.hideLoading()
會同時把wx.showToast()
也hide掉,雖然微信官方文檔說wx.hideToast()
和wx.hideLoading()
需要配對使用,但實際開發中發現兩者可以隨意使用。
- 原因:一般是
- 解決:使用
wx.hideLoading()
之後再使用wx.showToast()
。
7. 上拉加在更多事件
- 頁面自帶事件:onReachBottom
- scorll-view組件中事件:bindscrolltolower
- scroll-view組件中的錨點事件:scroll-into-view:值應爲某子元素id(id不能以數字開頭)。設置哪個方向可滾動,則在哪個方向滾動到該元素