出錯(cuò)的原因是加了多余的wx.ready()方法
多讀文檔解決問(wèn)題
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(() => { // 因?yàn)槭琼?yè)面加載時(shí)就需要調(diào)用相關(guān)接口所以要加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)
})
})
})
},
/**
* 關(guān)閉分享操作
*/
unShare ({dispatch, state}, payload) {
return new Promise((resolve, reject) => {
dispatch('initConfig', {perms: ['hideAllNonBaseMenuItem']}).then(() => {
/* eslint-disable no-undef */
wx.ready(() => { // 因?yàn)槭琼?yè)面加載時(shí)就需要調(diào)用相關(guān)接口所以要加wx.ready方法
wx.hideAllNonBaseMenuItem()
})
})
})
},
/**
* 從相冊(cè)中選圖片或者拍照
*/
chooseImage ({dispatch, state}, payload) {
return new Promise((resolve, reject) => {
// 因?yàn)槭怯脩粲|發(fā)時(shí)才調(diào)用的接口,則可以直接調(diào)用,不需要放在ready函數(shù)中
wx.chooseImage({
count: payload, // 默認(rèn)9張照片
sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有
sourceType: ['album', 'camera'], // 可以指定來(lái)源是相冊(cè)還是相機(jī),默認(rèn)二者都有
success: resolve,
fail: reject
})
})
},
/**
* 獲取本地圖片
*/
getLocalImgData ({dispatch, state}, payload) {
return new Promise((resolve, reject) => {
// 因?yàn)槭怯脩粲|發(fā)時(shí)才調(diào)用的接口,則可以直接調(diào)用,不需要放在ready函數(shù)中
wx.getLocalImgData({
localId: payload, // 圖片的localID
success: resolve,
fail: reject
})
})
}