vue router链接导致的认证失败
现象就是ios设备,第一次进入页面时接口安全认证会失败,第二次刷新又成功。
原因参考:
http://t.zoukankan.com/xueshanshan-p-8692092.html[http://t.zoukankan.com/xueshanshan-p-8692092.html]
微信分享的缩略图效果
必须在公众号中点击才有效,公众号的消息窗口也可以,在朋友的聊天窗口中点击链接后的分享是无效的。
以下是vue mounted方法例子
mounted(){
// wx配置
// 如果使用router的话ios需要将#后的链接去除作为认证链接
if (typeof window.entryUrl === 'undefined' || window.entryUrl === '') {
window.entryUrl = location.href.split('#')[0]
}
// 进行签名的时候 Android 不用使用之前的链接, ios 需要
let signLink = /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.entryUrl;
this.axios({
// 后台获取微信认证的接口,需要后台开发
url:"https://rayin.ink/getWxConfig",
method: "post",
// 注意这里的地址
data:{ url: signLink}
}).then((res)=>{
this.$wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
appId: res.appId, // 必填,公众号的唯一标识
timestamp: res.timestamp , // 必填,生成签名的时间戳
nonceStr: res.nonceStr, // 必填,生成签名的随机串
signature: res.signature,// 必填,签名
jsApiList: ['checkJsApi',
'onMenuShareTimeline',//
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
'wx-open-launch-weapp'], // 必填,需要使用的JS接口列表
openTagList: ["wx-open-launch-weapp"], // 可选,需要使用的开放标签列表,例如['wx-open-launch-weapp']
});
// 公众号内点击的链接才能分享为缩略图
this.$wx.ready(()=>{
var appMessageShareData = {
title:'分享标题',//标题
desc: '分享标题',
link: 'https://rayin.ink', //分享链接的链接域名需要与signLink相同,后缀可以不同
imgUrl: 'https://rayin.ink/img/xxx.png' //分享小图标
};
this.$wx.onMenuShareAppMessage(appMessageShareData);//分享给好友
this.$wx.onMenuShareTimeline(appMessageShareData);//分享到朋友圈
this.$wx.onMenuShareQQ(appMessageShareData);//分享给手机QQ
})
this.$wx.error((data)=>{
console.log(data)
})
});
}