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 相关文章推荐
jquery入门—访问DOM对象方法
Jan 07 Javascript
原生javascript兼容性测试实例
Jul 01 Javascript
JavaScript的React框架中的JSX语法学习入门教程
Mar 05 Javascript
Angularjs结合Bootstrap制作的一个TODO List
Aug 18 Javascript
Javascript 实现全屏滚动实例代码
Dec 31 Javascript
JavaScript实现时钟滴答声效果
Jan 29 Javascript
利用Jasmine对Angular进行单元测试的方法详解
Jun 12 Javascript
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
jQuery实现输入框的放大和缩小功能示例
Jul 21 jQuery
vue-drag-chart 拖动/缩放图表组件的实例代码
Apr 10 Javascript
javascript 函数的暂停和恢复实例详解
Apr 25 Javascript
在Vue中使用Echarts实例图的方法实例
Oct 10 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中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
windows下安装python paramiko模块的代码
2013/02/10 Python
理解Python中的类与实例
2015/04/27 Python
在Python中编写数据库模块的教程
2015/04/29 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
python实现石头剪刀布小游戏
2021/01/20 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
Python selenium的基本使用方法分析
2019/12/21 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
Keras 使用 Lambda层详解
2020/06/10 Python
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
大学校园活动策划书
2014/02/04 职场文书
学校招生宣传广告词
2014/03/19 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
tensorflow中的数据类型dtype用法说明
2021/05/26 Python