import request from '@/utils/request'
let wxIsReady = false
export async function setShareLink(pid) {
if (wxIsReady) {
doSetShareLink(pid);
return true;
} else {
const res = await request({
url: '/Member/JsSdkConfig',
method: 'post',
data: { url: window.location.href.split('#')[0] }
});
if (res.Success && !!res.Response) {
wx.config({
debug: process.env.NODE_ENV !== 'production', // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.Response.appId, // 必填,公众号的唯一标识
timestamp: res.Response.timestamp, // 必填,生成签名的时间戳
nonceStr: res.Response.nonceStr, // 必填,生成签名的随机串
signature: res.Response.signature,// 必填,签名
jsApiList: [ 'onMenuShareTimeline', //分享给好友
'onMenuShareAppMessage' ] // 必填,需要使用的JS接口列表 这里填写需要用到的微信api openlocation为使用微信内置地图查看位置接口
});
wx.ready(function () {
wx.checkJsApi({
jsApiList: ['onMenuShareTimeline', //分享给好友
'onMenuShareAppMessage' ],
success: function (res) {
//wx.showMenuItems({
// menuList: [
// 'menuItem:share:appMessage', //发送给朋友
// 'menuItem:share:timeline' //分享到朋友圈
// ]
// });
wxIsReady = true;
doSetShareLink(pid);
}
});
});
wx.error(function (res) {
console.log(res);
});
} else {
return false;
}
}
}
function doSetShareLink(pid) {
wx.onMenuShareAppMessage({
title: '标题', // 分享标题
desc: '描述', // 分享描述
link: window.location.href.split('#')[0],// 分享链接
imgUrl: '图片', // 分享图标
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
console.log(res);// 用户确认分享后执行的回调函数
},
cancel: function () {
console.log(res);
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareTimeline({
title: '标题', // 分享标题
desc: '描述', // 分享描述
link: window.location.href.split('#')[0],// 分享链接
imgUrl: '图片', // 分享图标
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
console.log(res);// 用户确认分享后执行的回调函数
},
cancel: function () {
console.log(res);
// 用户取消分享后执行的回调函数
}
});
}
看起来是签名错误了哦