微信小程序获取用户信息wx.getUserProfile

1、使用点击事件调用uni.getUserProfile()获取用户信息

每次请求都会弹出授权窗口,用户同意后返回 userInfo

login(){
	// 获取code
	uni.login({
		provider: 'weixin',
		success: function(res) {
			console.log(res)
		},
	})
	
	//不能写在uni,login()中
	//如果写在uni.login()中,调不到这个api
	uni.getUserProfile({
		desc:'登录',
		success:(res)=>{
			console.log(res.userInfo)
		}
	})
}

2、使用open-data组件直接展示

使用open-data组件直接展示用户信息,跳过弹窗一步,不用用户点击

<view>
	<open-data type="userAvatarUrl"></open-data>  //用户头像
	<open-data type="userNickName"></open-data>  //用户名称
</view>

<style>
//头像设置为圆的
.avatar {
	    width:150rpx;
	    height:150rpx;
	    border-radius: 50%;
	    overflow:hidden
	 }
</style>

更多用户信息:
在这里插入图片描述

3、解决每次调用uni.getUserProfile()都会弹出授权框

解决思路:
1、在第一次登陆的时候,将用户信息存在本地;
2、下次登陆的时候,先判断本地是否存在用户信息;
3、若有:直接登录;若没有,调用uni.getUserProfile(),然后再登录

// 登录(在vuex中记录登陆状态)
		login(state) {
			let userInfoLogin = uni.getStorageSync('userInfoLogin')
			// 获取code
			uni.login({
				provider: 'weixin',
				success: function(res) {
					state.code = res.code  //获取code
					if(userInfoLogin.nickname != undefined){
						//接下来 获取openid,登录
					}
				},
			})
			if(userInfoLogin.nickname == undefined){
				uni.getUserProfile({
					desc:'登录',
					success: function(infoRes) {
						uni.setStorageSync('userInfoLogin',infoRes)
						//接下来 获取openid,登录
						
					}
				})
			}
		},
		
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值