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 相关文章推荐
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
Jan 20 Javascript
使用js在页面中绘制表格核心代码
Sep 16 Javascript
js实现表单检测及表单提示的方法
Aug 14 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
Jun 22 Javascript
Angular5.1新功能分享
Dec 21 Javascript
javascript 通过键名获取键盘的keyCode方法
Dec 31 Javascript
vue 路由页面之间实现用手指进行滑动的方法
Feb 23 Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
Apr 15 Javascript
JS数组的常用方法整理
Mar 31 Javascript
CocosCreator如何实现划过的位置显示纹理
Apr 14 Javascript
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
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
在字符串中把网址改成超级链接
2006/10/09 PHP
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
java解析json方法总结
2019/05/16 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
Angular-UI Bootstrap组件实现警报功能
2018/07/16 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
2020/10/30 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[20:30]职业巡回赛回顾
2018/08/09 DOTA
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
CSS3中媒体查询结合rem布局适配手机屏幕
2019/06/10 HTML / CSS
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
学习委员自我鉴定
2014/01/13 职场文书
离婚协议书范本样本
2014/08/19 职场文书
银行奉献演讲稿
2014/09/16 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
电影复兴之路观后感
2015/06/02 职场文书
房屋质量投诉书
2015/07/02 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
hive数据仓库新增字段方法
2022/06/25 数据库