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 parseInt() 函数的进制转换注意细节
Jan 08 Javascript
jquery实现div阴影效果示例代码
Sep 16 Javascript
Javascript简单实现可拖动的div
Oct 22 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
Mar 13 Javascript
JS字符串按逗号和回车分隔的方法
Apr 25 Javascript
vue2.0在table中实现全选和反选的示例代码
Nov 04 Javascript
在nginx上部署vue项目(history模式)的方法
Dec 28 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
Feb 08 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
vue-cli3 karma单元测试的实现
Jan 18 Javascript
Vue.js 无限滚动列表性能优化方案
Dec 02 Javascript
JavaScript中reduce()的5个基本用法示例
Jul 19 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连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
DIV菜单层实现代码
2010/11/19 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
数据库连接池的工作原理
2012/09/26 面试题
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
自荐信格式范文
2013/10/07 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
教师考核评语
2014/04/28 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
护士2015年终工作总结
2015/04/29 职场文书
论语读书笔记
2015/06/26 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
php去除deprecated的实例方法
2021/11/17 PHP