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 相关文章推荐
js和as的稳定传值问题解决
Jul 14 Javascript
DOM 高级编程
May 06 Javascript
AngularJS控制器controller正确的通信的方法
Jan 25 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
May 05 Javascript
最实用的jQuery分页插件
Oct 09 Javascript
正则表达式替换html元素属性的方法
Nov 26 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
Jan 13 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
May 23 Javascript
JS实现容器模块左右拖动效果
Jan 14 Javascript
vue+iview分页组件的封装
Nov 17 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
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
PHP 获取远程文件内容的函数代码
2010/03/24 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
jquery遍历input取得input的name
2009/04/27 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
Python中%r和%s的详解及区别
2017/03/16 Python
使用Python写CUDA程序的方法
2017/03/27 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
Python的缺点和劣势分析
2019/11/19 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
高三体育教学反思
2014/01/29 职场文书
教师病假条范文
2015/08/17 职场文书
python中24小时制转换为12小时制的方法
2021/06/18 Python
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server
MySQL 开窗函数
2022/02/15 MySQL
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android