vue实现微信获取用户信息的方法


Posted in Javascript onMarch 21, 2019

本次项目做到一个点赞功能,即分享出去一个页面给微信好友,微信好友点开并点赞,需要将点赞用户的微信昵称,微信头像以及微信openid,微信unionid(这个需要关注公众号才会有该字段)传给后端,记录点赞人的相关信息

代码如下

// created 周期
if(this.$route.query.from) { // 判断链接中是否有from参数,下面的studentId,activityId项目需要
 let _nowUrl = window.location.href.split('?')[0] + `?resource=1&studentId=${this.$route.query.studentId}&activityId=${this.$route.query.activityId}`
 let _shareUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${encodeURIComponent(_nowUrl)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
 window.location.href = _shareUrl
 return
}
// 处理微信用户信息
 handleWechatMsg(code) {
  // 调取 获取微信用户信息的接口(后端参考微信官方文档进行封装)  code--参数
  api.getWechatInfo(code).then((res)=>{
   if(res.data.code == 200) {
    // 返回的是json字符串
    let _data = res.data.content
    let _personMsg = JSON.parse(_data)
    this.wechatMsg = _personMsg
    // 本地存储微信用户信息,防止页面被刷新,code失效
    window.localStorage.setItem('wechatMesssage', _data)
   } else if (res.data.code == 400) { // 400-code失效,400是后端返回,具体看后端返回哪个码
    let msgs = window.localStorage.getItem('wechatMesssage')
    this.wechatMsg = JSON.parse(msgs)    
   } else {
    this.$Message.message(res.data.message);
   }

  })
 },

如果需要获取微信unionid,则需要引导用户关注公众号,可以在返回的用户信息中判断是否含有unionid,如果没有,可以展示微信公众号的二维码,供用户识别关注

⚠️--------------------

  1. 当前页面的域名,需要在公众号后台配置添加(详见官网)
  2. 如果页面存在#,可能会出问题,可以使用nginx进行配置

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Konami Code 实现代码
Jul 29 Javascript
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
在JS中最常看到切最容易迷惑的语法(转)
Oct 29 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
动态添加option及createElement使用示例
Jan 26 Javascript
javascript删除数组元素并且数组长度减小的简单实例
Feb 14 Javascript
详解JavaScript UTC时间转换方法
Jan 07 Javascript
微信小程序 用户数据解密详细介绍
Jan 09 Javascript
js实现简易垂直滚动条
Feb 22 Javascript
详解webpack自动生成html页面
Jun 29 Javascript
vue项目中使用fetch的实现方法
Apr 25 Javascript
浅谈Vue的响应式原理
May 30 Javascript
vue里如何主动销毁keep-alive缓存的组件
Mar 21 #Javascript
基于node简单实现RSA加解密的方法步骤
Mar 21 #Javascript
详解React项目如何修改打包地址(编译输出文件地址)
Mar 21 #Javascript
js实现unicode码字符串与utf8字节数据互转详解
Mar 21 #Javascript
详解JS取出两个数组中的不同或相同元素
Mar 20 #Javascript
详解vue中axios的使用与封装
Mar 20 #Javascript
javascript数组去重方法总结(推荐)
Mar 20 #Javascript
You might like
php ajax 静态分页过程形式
2011/09/02 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
php生成QRcode实例
2014/09/22 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
jquery提升性能最佳实践小结
2010/12/06 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
python中_del_还原数据的方法
2020/12/09 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
企业形象策划方案
2014/05/29 职场文书
交通事故委托书范本
2014/09/28 职场文书
幼儿园个人总结
2015/02/28 职场文书
亮剑观后感600字
2015/06/05 职场文书
2019各种承诺书范文
2019/06/24 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python