当前位置:网站首页>uniapp获取用户信息(登录及个人中心页面的实现)

uniapp获取用户信息(登录及个人中心页面的实现)

2022-08-11 05:17:00 肖肖冲鸭

因为在微信小程序中wx.getuserInfo已经失效,所以我们在uniapp中也应该使用wx.getUserProfile来获取用户信息
页面的逻辑

  1. 一上来加载个人中心页,当用户点击未登录三个字时跳转登录页
  2. 登录页点击微信登录应该跳出授权弹窗获取用户的授权信息(使用wx.getUserProfile)
  3. 当用户点击同意授权时,应该将获取的用户信息使用同步或者异步存储存储到storage中(wx.setStorageSync),以便个人中心页使用,并且同时跳转到个人中心页(wx.reLaunch)
    login.vue
			getuserinfo(e) {
    
				wx.getUserProfile({
    
					desc:'用户完善个人信息',
					success: (res) => {
    
						// console.log(res)
						let userInformation=res.userInfo
						wx.setStorageSync('userInformation',userInformation)
						// this.userInformation=userInformation
						wx.reLaunch({
    
							url:'/pages/personal/personal'
						})
					},
					fail: () => {
    
						wx.showToast({
    
							title:'授权失败',
							icon:'error',
							duration:2000
						})
					}
				})
			},

此时的页面效果
在这里插入图片描述
登录成功之后,在个人中心页获取storage中存储的个人信息(wx.getStorageSync),渲染到页面,并且再次点击登录按钮不跳转到登录页面

		mounted(){
    
			this.userInfo=wx.getStorageSync('userInformation')
		},
		methods: {
    
			toLogin(){
    
				// 如果有nickName说明以及登录,所以点击不跳转
				if(this.userInfo.nickName){
    
					return
				}
				wx.navigateTo({
    
					url:'/pages/login/login'
				})
			}
		},

获取用户的头像以及昵称信息(判断是否获取用户信息成功,成功就显示用户信息,不成功显示默认值):

<image class="userImg" :src="userInfo.avatarUrl?userInfo.avatarUrl:'../../static/images/personal/personal.png'" mode=""></image>
<div class='userInfo' @click='toLogin'>
	<p>{
   {userInfo.nickName?userInfo.nickName:'未登录'}}</p>
</div>

成功后的页面效果:
在这里插入图片描述

原网站

版权声明
本文为[肖肖冲鸭]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_48952990/article/details/126024066