出错的原因是加了多余的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
})
})
}
网友评论