uniapp 微信小程序获取用户信息、手机号

<template>
    <!-- #ifdef MP-WEIXIN -->
    <view>
        <view>
            <button  type="primary" class='btn' open-type="openSetting"
                @opensetting="openSetting">授权设置页</button>
            
            <!-- 没有授权窗口,获取到的信息匿名 ------废弃 -->
            <button  type="primary" class='btn' open-type="getUserInfo"
                @getuserinfo="getUserInfo">获取用户信息</button>
            
            <!-- 有授权窗口 -->    
            <button  type="primary" class='btn' @click="getUserProfile">授权获取用户信息</button>
            <!-- 获取手机号使用手机号登录 -->
            <button  type="primary" class='btn' open-type="getPhoneNumber"
                @getphonenumber="getPhoneNumber">使用手机号登录</button>
        </view>
    </view>
    <!-- #endif -->
</template>
<script>
    export default {
        data() {
            return {
            loginFlag: false,
            }
        },
        onLoad() {
            if (uni.getStorageSync('token')) {
                console.log('获取到token,前往验证')
                // token验证函数
            } else {
                console.log('未获取到token')
            }
        },
        methods: {
            // 授权设置页
            /*
             一些通知管理、位置信息设置
            */
            openSetting(e){
                console.log("授权设置页",e)
            },
            // 获取用户信息
            /*
                2021年4月30号之后上传小程序获取数据为加密,并且没有授权窗口
            */
            getUserInfo(e){
                console.log("获取到的用户信息",e)
            },
            // 授权获取用户信息
            /*
                2021年4月30号之后更换为getUserProfile,有授权框
                lang:指定返回用户信息的语言,默认为 en。
                desc:声明获取用户个人信息后的用途,不超过30个字符
            */
            getUserProfile(){
                uni.getUserProfile({
                  lang: 'zh_CN',
                  desc: '用户登录',
                  success: (res) => {
                    console.log('获取到的用户信息', res)
                  },
                  // 失败回调
                  fail: (err) => {
                    console.log('选择了拒绝')
                  },
                })
            },
            
            // 刷新微信登录态
            wxlogin(){
                uni.login({
                    success:(res)=>{
                      this.loginFlag = true;
                      console.log('获取得到的loginres', res)
                    },
                    fail:(err)=>{
                      reject(err)
                    },
                })
            },
            // 获取手机信息
            /*
                2.21.2版本之后,获取手机号不需要提前调用login进行登录
            */
            getPhoneNumber(e) {
                console.log("获取手机号码", e)
                if (e.detail.errMsg !== 'getPhoneNumber:ok'){
                    this.$u.toast("拒绝手机号登录");
                 return;
                }
                uni.showLoading()
                uni.request({
                    url: 'xxxxxx',
                    data: {
                        code: e.detail.code
                    },
                    method: 'GET',
                    header: {
                        'content-type': 'application/json',
                    },
                    success:(res)=> {
                        console.log('使用手机号登录', res)
                        if (data.statusCode == 200) {
                            wx.hideLoading()
                            // 实际不给手机号,只给token
                            // console.log('获取到的手机号是', res.data)
                            uni.setStorageSync('token', res.access_token)
                            
                        }else {
                            this.$u.toast(res.msg);
                        }
                    },
                    fail:(err)=> {
                        this.$u.toast('服务器开小差了呢,请您稍后再试')
                        console.log(err);
                    },
                })
            },
        }
    }
</script>

<style>

    .btn {
        background: #1890FF !important;
        line-height: 80rpx !important;
        border-radius: 80rpx !important;
        margin: 70rpx 50rpx !important;
        font-size: 35rpx !important;
    }
</style>
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值