如果项目文件node_modules中没有weixin-js-sdk文件,则直接使用本文章提供的;
如果不生效,则在template.h5.html中引入
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
首先引入weixin-js-sdk
<script>
import * as weixin from 'weixin-js-sdk'
import * as UserApi from '@/api/user'
export default {
data() {
return {
}
},
onLoad(options) {
this.weixinShareInfo();
},
methods: {
weixinShareInfo(){
var that = this;
//获取当前url然后传递给后台获取授权和签名信息
var urls = window.location.href.split('#')[0]; //当前网页的URL,不包含#及其后面部分
console.log('888:',window.location.href.split('#')[0]);
var data = {
urls:urls
}
//获取到微信分享相关配置
UserApi.fenxiang(data, { load: true }).then(res => {
if(res.data && res.data.signData){
console.log('res.data.signData:',res.data.signData);
weixin.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.data.signData.appId, // 必填,公众号的唯一标识
timestamp: res.data.signData.timestamp, // 必填,生成签名的时间戳
nonceStr: res.data.signData.nonceStr, // 必填,生成签名的随机串
signature: res.data.signData.signature,// 必填,签名
jsApiList: ["onMenuShareTimeline","onMenuShareQQ","onMenuShareAppMessage","updateAppMessageShareData","updateTimelineShareData"] // 必填,需要使用的JS接口列表
});
weixin.ready(function(){
console.log(999999999998888888888);
weixin.checkJsApi({
jsApiList: ['updateAppMessageShareData',"updateTimelineShareData"], // 需要检测的JS接口列表,所有JS接口列表见附录2,
success: function(res2) {
// 以键值对的形式返回,可用的api值true,不可用为false
// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
weixin.updateAppMessageShareData({
title: '测试标题', // 分享标题
desc: res.data.signData.intro, // 分享描述
link: res.data.signData.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: res.data.signData.fximg, // 分享图标
success: function () {
// 设置成功
console.log('===分享===');
}
})
weixin.updateTimelineShareData({
title: '测试标题', // 分享标题
desc: res.data.signData.intro, // 分享描述
link: res.data.signData.url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: res.data.signData.fximg, // 分享图标
success: function () {
// 设置成功
console.log('===分享===');
}
})
},
fail: function(err){
console.log('checkJsApi:',err);
}
});
})
weixin.error(function(err){
console.log('err:',err);
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
})
}
}).catch(err => {
})
},
}
}
</script>