//在导航进入该路由之前
beforeRouteEnter(to, from, next) {
next(_this=>{
let openid=getCookie('openid')
//如果没有openid,直接微信获取
if(!openid){
//判断是否为微信环境
if(_this.isWeixin){
let code=_this.getUrlKey('code');
if(code){
let data={
code:code
}
codeGetOpenid(data).then((res)=>{
if(res.data.error==0){
openid=res.data.datArr.openid;
setCookie('openid',openid)
//跳转当前页面并加上参数
window.location.replace('/scanLogin/checkingCaller?event_id='+_this.event_id)
}else{
Toast.fail(res.data.msg);
window.location.replace('/scanLogin/checkingCaller?event_id='+_this.event_id)
}
})
}else{
_this.getCodeApi('wx')
}
}else{
Toast.fail('请在微信客户端打开')
}
}
})
},
methods: {
//获取url参数
getUrlKey(name){
return decodeURIComponent((new RegExp('[?|&]'+name+'='+'([^&;]+?)(&|#|;|$)').exec(location.href)||[,""])[1].replace(/\+/g,'%20'))||null;
},
//获取code
getCodeApi(state){
let data={
url:location.href
}
getWXconfig(data).then((res)=>{
let Data = res.data;
let appId=Data.appId
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作
wx.config({
debug: false, // 开启调试模式,开发时可以开启
appId: Data.appId, // 必填,公众号的唯一标识 由接口返回
timestamp: Data.timestamp, // 必填,生成签名的时间戳 由接口返回
nonceStr: Data.nonceStr, // 必填,生成签名的随机串 由接口返回
signature: Data.signature, // 必填,签名 由接口返回
jsApiList: [] // 此处填你所用到的方法
});
let urlNow=encodeURIComponent(window.location.href);
let scope='snsapi_base'; //snsapi_userinfo //静默授权 用户无感知
let url="http://m.yunbisai.com/wechat/Openid?url="+urlNow;
window.location.replace(url);
})
},
isWeixin(){
const ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
} else {
return false;
}
},
}
vue在微信端自动获取微信openid
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 写给ASP程序员共勉:老兵不死,只会慢慢凋零而已。 背景 尝试一下新鲜事物“微信小程序”,其中有一个业务场景,通过...
- 近日,谷歌人工智能AlphaGo与韩国棋手李世乭的围棋比赛引起热烈讨论。在强大的人工智能面前,即使是人类顶尖高手也...