mpvue遇到問題

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不能以數字開頭)。設置哪個方向可滾動,則在哪個方向滾動到該元素

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章