正常代码写进去:
methods里面写两个方法:
initWechat () {
let str = Base64.encode(location.origin + location.pathname + location.search)
this.request.zsyGetHttp(`/wx/jsapi/ticket/${str}`, {}, res => {
wx.config({
appId: res.data.appId,
timestamp: res.data.timestamp,
nonceStr: res.data.nonceStr,
signature: res.data.signature,
// debug: true,
jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage']
});
})
},
SharePublic () {
let $this = this;
let urls = 'http://'+this.helper.getDomain()+'/#/studentMarkShare/'+this.params.examId+'/'+this.params.studentId;
let names = this.exam.studentName;
let imgLink = 'http://'+this.helper.getDomain()+'/static/logo.jpg';
wx.ready(function(){
wx.onMenuShareTimeline({
title: names+'又考了一个好成绩,快来围观!', // 分享标题
link: urls, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgLink, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
$this.showShareWarn = false;
},
cancel: function () {
// 用户取消分享后执行的回调函数
$this.showShareWarn = false;
}
});
wx.onMenuShareAppMessage({
title: $this.exam.studentName+'又考了一个好成绩,快来围观!', // 分享标题
desc: names+'成绩单', // 分享描述
link: urls, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgLink, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
$this.showShareWarn = false;
},
cancel: function () {
// 用户取消分享后执行的回调函数
$this.showShareWarn = false;
}
});
});
}
created里面调用:
created () {
this.initWechat();
let that = this ;
setTimeout(function(){
that.SharePublic();
},2000)
}
然后运行,发现ios分享朋友圈,发送给朋友无论从外观还是点进去都没问题,然而安卓分享的时候外观也没啥问题,只是点进去的时候默认跳转到了主页面,好像我设置的链接并没啥用。。。。怎么回事。。。
是因为安卓分享的时候会把自己定义的链接 /#/ 后边的字符串都截掉了,所以一直跳转的默认页面
所以解决办法是在链接的 /#/ 处做修改,即把 /#/ 变成 /?#/ 就好了。
小菜鸟一个,不喜勿喷。。。