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 相关文章推荐
弹出广告特效(一个IP只弹出一次)的代码
Jul 27 Javascript
js 距离某一时间点时间是多少实现代码
Oct 14 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
js日期、星座的级联显示代码
Jan 23 Javascript
你可能不知道的JavaScript的new Function()方法
Apr 17 Javascript
jQuery获取对象简单实现方法小结
Oct 30 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 Javascript
js实现下拉菜单效果
Mar 01 Javascript
js省市区级联查询(插件版&无插件版)
Mar 21 Javascript
ES6 如何改变JS内置行为的代理与反射
Feb 11 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
Mar 06 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
Dec 24 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中两个float(浮点数)比较实例分析
2015/09/27 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
JavaScript 原型与继承说明
2010/06/09 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
javascript 节点排序 2
2011/01/31 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
2016/04/11 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python语法快速入门指南
2015/10/12 Python
Python基于pillow判断图片完整性的方法
2016/09/18 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
工程概预算专业毕业生求职信
2013/10/04 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
毕业生应聘求职信
2014/07/10 职场文书
机关作风建设心得体会
2014/10/22 职场文书
新闻通讯稿范文
2015/07/22 职场文书
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript