微信图片上传相关页面不刷新页面时上传是正常的,刷新后上传失效

出错的原因是加了多余的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

      })

    })

  }

猜你喜欢

转载自blog.csdn.net/qq_38797977/article/details/84870183