1. 程式人生 > >微信圖片上傳相關頁面不重新整理頁面時上傳是正常的,重新整理後上傳失效

微信圖片上傳相關頁面不重新整理頁面時上傳是正常的,重新整理後上傳失效

出錯的原因是加了多餘的wx.ready()方法

多讀文件解決問題

image

解決的程式碼如下:

vuex中封裝的方法


/**

  * 分享操作

  * @param {Object} param0

  * @param {Object} payload {title:'',link:null,desc:null,type:null,img:''}

  */

  share ({dispatch, state}, payload) {

    return new Promise((resolve, reject) => {

      dispatch('initConfig', {perms: ['onMenuShareTimeline', 'onMenuShareAppMessage']}).then(() => {

        let parsedLink = payload.link === undefined || !payload.link ? window.location.href : payload.link

        /* eslint-disable no-undef */

        wx.ready(() => { // 因為是頁面載入時就需要呼叫相關介面所以要加wx.ready方法

          let share = {

            title: payload.title,

            link: parsedLink,

            desc: payload.desc,

            type: payload.type === null ? 'link' : payload.type,

            imgUrl: payload.img === undefined || !payload.img ? null : payload.img,

            success: resolve,

            cancel: reject

          }

          wx.onMenuShareTimeline(share)

          wx.onMenuShareAppMessage(share)

          // wx.updateAppMessageShareData(share)

          // wx.updateTimelineShareData(share)

        })

      })

    })

  },

  /**

  * 關閉分享操作

  */

  unShare ({dispatch, state}, payload) {

    return new Promise((resolve, reject) => {

      dispatch('initConfig', {perms: ['hideAllNonBaseMenuItem']}).then(() => {

        /* eslint-disable no-undef */

        wx.ready(() => { // 因為是頁面載入時就需要呼叫相關介面所以要加wx.ready方法

          wx.hideAllNonBaseMenuItem()

        })

      })

    })

  },

  /**

  * 從相簿中選圖片或者拍照

  */

  chooseImage ({dispatch, state}, payload) {

    return new Promise((resolve, reject) => {

      // 因為是使用者觸發時才呼叫的介面,則可以直接呼叫,不需要放在ready函式中

      wx.chooseImage({

        count: payload, // 預設9張照片

        sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,預設二者都有

        sourceType: ['album', 'camera'], // 可以指定來源是相簿還是相機,預設二者都有

        success: resolve,

        fail: reject

      })

    })

  },

  /**

  * 獲取本地圖片

  */

  getLocalImgData ({dispatch, state}, payload) {

    return new Promise((resolve, reject) => {

      // 因為是使用者觸發時才呼叫的介面,則可以直接呼叫,不需要放在ready函式中

      wx.getLocalImgData({

        localId: payload, // 圖片的localID

        success: resolve,

        fail: reject

      })

    })

  }