当前位置:   article > 正文

微信小程序获取用户信息(附代码、流程图)

微信小程序获取用户信息

本篇文章主要总结了微信小程序开发,获取用户信息的整个流程步骤。补充了网上很多碎片化的代码,本人梳理了思路写下了这篇文章。

 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家

跳转到教程

 

思路

1、在js文件中,设置userinfo、hasUserinfo、canIUseGetUserProfile数据

2、先判断本地缓存( wx.getStorageSync() )是否含有用户的数据,如果有就用缓存里的数据,没有就进行第三步

3、在界面添加登录按钮,用户点击按钮调用wx.getUserProfile()函数来提示用户授权登录,授权成功后,把用户头像数据和名称数据保存到缓存区里,并且改变全局变量的值

流程图

自己大概画了一下大概的流程,但希望对您有帮助!

考虑到一些新手,我将完整代码发给大家,大家按照代码对应写入对应位置即可!

wxml

  1. <view class="banner">
  2. <view class="topContainer">
  3. <view catchtap="showBcgImgArea">
  4. <image class="userinfo-avatar" mode="aspectFill" src="{{userinfo.avatarUrl}}"></image>
  5. </view>
  6. <view>
  7. <text class="userinfo-nickname">{{userinfo.nickName}}</text>
  8. </view>
  9. </view>
  10. <button wx:if="{{!hasUserInfo && canIUseGetUserProfile}}" open-type="getUserInfo" bindtap="getUserProfile" class="userLogin">
  11. 点击登录
  12. </button>
  13. </view>

js

注意:avatarUrl:'../../images/ckbg1.png'

这行代码意思是当没有获取到用户信息时,页面展示头像的路径,自己要先准备好一张图片(放在images文件夹下),并填好头像路径!

  1. data: {
  2. //用户基本信息(头像、昵称)
  3. userinfo: {
  4. avatarUrl:'../../images/ckbg1.png',
  5. nickName:'未授权'
  6. },
  7. //是否已经获取用户信息
  8. hasUserInfo: false,
  9. //是否可以调用获取信息得函数
  10. canIUseGetUserProfile: false,
  11. },
  12. //第一次获取用户信息
  13. getUserProfile : function(e){
  14. wx.getUserProfile({
  15. desc: '获取您的微信个人信息',
  16. success:(res)=>{
  17. this.setData({
  18. userinfo:res.userInfo,
  19. hasUserInfo:true
  20. })
  21. wx.setStorageSync('userinfo', res.userInfo)
  22. },
  23. fail:function(e){
  24. wx.showToast({
  25. title: '你选择了取消',
  26. icon: "none",
  27. duration: 1500,
  28. mask: true
  29. })
  30. }
  31. })
  32. },
  33. onLoad: function(n) {
  34. this.setData({
  35. canIUseGetUserProfile : true
  36. })
  37. },
  38. onShow: function() {
  39. //获取用户的本地缓存数据,userinfo信息是在用户授权登录时保存的
  40. var n = wx.getStorageSync("userinfo");
  41. //当本地缓存的用户名称不为""或者null时,设置userinfo信息
  42. if(n.nickName != '' && n.nickName != null){
  43. this.setData({
  44. userinfo: n,
  45. hasUserInfo:true,
  46. canIUseGetUserProfile:true
  47. })
  48. // 通过wx.login获取登录凭证(code),然后通过code去获取我们用户的openid
  49. wx.login({
  50. success:(res)=>{
  51. console.log(res);
  52. },
  53. })
  54. }
  55. //清空缓存信息,测试使用
  56. // wx.removeStorage({
  57. // key: 'userinfo',
  58. // });
  59. },

在这里有必要讲解几处代码:

        1、当页面加载完毕时(onLoad函数),我们将canIUseGetUserProfile数据设置ture,代表可以使用使用getUserProfile了,避免页面没有加载完毕就去获取用户信息

        2、当页面即将展示时(onShow函数),调用wx.getStorageSync获取本地缓存数据,来控制按钮的显示与否

wxss

  1. .banner {
  2. border-radius: 10rpx;
  3. border: none;
  4. box-sizing: content-box;
  5. padding: 20rpx 0;
  6. width: 90%;
  7. height: 370rpx;
  8. margin: 20rpx auto;
  9. background:linear-gradient(109.6deg, rgb(204, 228, 247) 11.2%, rgb(237, 246, 250) 100.2%);
  10. /* background-image:image("../../images/cloudbg.jpg"); */
  11. text-align: center;
  12. }
  13. .topContainer {
  14. width: 100%;
  15. height: 260rpx;
  16. background-size: 100%;
  17. border-radius: 9px;
  18. }
  19. .userinfo-nickname {
  20. color:black;
  21. }
  22. .userLogin{
  23. width: 50%;
  24. box-sizing: none;
  25. font-size: medium;
  26. }
  27. .userinfo-avatar {
  28. width: 150rpx;
  29. height: 150rpx;
  30. margin-bottom: 10rpx;
  31. border-radius: 50%;
  32. }

当缓存里没有记录用户信息时,显示的页面会出现登录按钮:

点击按钮后,弹出授权信息

点击允许后,会出现微信头像和微信名称

 效果展示:

创作不易,希望可以给个赞

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/284741
推荐阅读
相关标签