微信开发文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
H5不支持点击页面内按钮直接唤起分享面板,可以显示一个引导图,引导用户使用右上角的分享功能。
;encodeURIComponent(location.href.split('#')[0])
作为参数传给后端(后端需要用到它来获取签名),获取配置所需要的参数:appid、timestamp、noncestr和signature;
handleShare(){
this.$api.adopt
.getShareParams({
url:encodeURIComponent(location.href.split('#')[0])
})
.then(res => {
wx.config({
debug: false,// 是否开启调试模式
appId: res.appId,//appid
timestamp: res.timestamp,// 时间戳
nonceStr: res.nonceStr,// 随机字符串
signature: res.signature,// 签名
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareQZone',
]// 需要使用的JS接口列表
})
let shareData = {
title: '这是自定义的分享的标题', // 分享标题
desc: '这是自定义的分享的描述', // 分享描述
link: location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: ‘这是自定义的分享的图标’, // 分享图标
success: function () {},//分享成功的回调函数
cancel:function(){}//分享失败的回调函数
}
//所有接口调用都必须在config接口获得结果之后。
//config信息验证后会执行ready方法。
//config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
wx.ready(function(){
wx.onMenuShareAppMessage(shareData); // 微信好友
wx.onMenuShareTimeline(shareData); // 微信朋友圈
wx.onMenuShareQQ(shareData); // QQ
wx.onMenuShareQZone(shareData) // QQ空间
});
})
.catch(err => {})
}
invalid signature签名错误: