const wx = require('weixin-js-sdk'); const config = require('@/static/config.js'); export default { install(Vue){ Vue.mixin({ data(){ return { } }, onLoad() { this.signJsapiTicket(); }, methods:{ async signJsapiTicket(){ let url = location.href.split('#')[0] let parmas = { url: url, } let self = this; let res = await this.$myRequest({ url: '/wechat/signJsapiTicket', data: parmas, method:"GET", }); if(res.data.success){ let single = res.data.single; wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: config.appid, // 必填,公众号的唯一标识 timestamp: single.timestamp, // 必填,生成签名的时间戳 nonceStr: single.nonceStr, // 必填,生成签名的随机串 signature: single.signature, // 必填,签名 jsApiList: ["updateAppMessageShareData","updateTimelineShareData",'showMenuItems'] // 必填,需要使用的JS接口列表 }); wx.ready(function() { }); wx.error(function(res) { // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 }); } }, config(title,desc,link,imgUrl){ wx.showMenuItems({ menuList: [ "menuItem:share:appMessage","menuItem:share:timeline"] // 要显示的菜单项,所有menu项见附录3 }); wx.updateAppMessageShareData({ //分享给朋友 title: title, // 分享标题 desc: desc, // 分享描述 link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 success: function() { // 设置成功 } }); wx.updateTimelineShareData({ //分享到朋友圈 title: title, // 分享标题 link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 success: function() { // 设置成功 } }); } } }) } }