微信圖片上傳相關頁面不重新整理頁面時上傳是正常的,重新整理後上傳失效
阿新 • • 發佈:2018-12-07
出錯的原因是加了多餘的wx.ready()方法
多讀文件解決問題
解決的程式碼如下:
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 }) }) }