关于uniapp中微信小程序获取最新昵称和头像的方法

这篇具有很好参考价值的文章主要介绍了关于uniapp中微信小程序获取最新昵称和头像的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

哎,最近项目中遇到一个需求就是直接获取微信头像和昵称,可是去官方查阅后发现原先的接口已经不能获取了,返回的是灰色头像和微信用户,后来只能采用亡羊补牢的方法,就是用内置按钮组件的开放能力,引用了插件市场的代码,地址链接获取昵称、头像的弹窗,适用最新微信小程序 - DCloud 插件市场x

项目效果如下图

uniapp微信小程序获取用户头像,uni-app,微信小程序,小程序uniapp微信小程序获取用户头像,uni-app,微信小程序,小程序

 好的废话不多说上代码

这是一键登录授权页面

<template>
    <view class="container">
        <!-- 顶部开始 -->

        <!-- 顶部结束 -->

        <view class="main-logo-wrap">
            <!-- <view class="main-logo">
				<image src="../../static/detail/wodedingdan.png" mode=""></image>
			</view> -->
        </view>
        <view class="main">
            <button open-type="getPhoneNumber" @getphonenumber="getphonenumber" class="main-btn">用户一键登陆</button>
        </view>

        <u-popup :show="isShow" mode="center" border-radius="20" :mask-close-able="false">
            <view class="content-wrap">
                <view class='content'>
                    <view>为了您更好的体验,申请获取以下权限</view>
                    <text>获得你的公开信息(昵称,头像、地区等)</text>
                </view>

                <button class="main-btn" open-type="getUserInfo" @click="getUserProfile">
                    点击授权
                </button>
            </view>
        </u-popup>
        <!-- <cui-button class="item" @click="tapGetUserProfile">获取头像昵称</cui-button> -->


        <cui-userprofiledialog ref="userProfileDialog" paddingBottom="92rpx"></cui-userprofiledialog>
    </view>
</template>

<script>
    // import { mapState, mapMutations } from 'vuex';
    export default {
        data() {
            return {
                logo: '',
                code: '',
                isShow: false
            }
        },
        onShow() {
            // this.logo = uni.getStorageSync('logo')
        },
        onLoad() {
            this.getcode();


        },

        methods: {
            tapGetUserProfile() {
                this.$refs["userProfileDialog"].show({
                    desc: "用于显示个人资料",
                    avatarUrl: {
                        requried: true, // 是否必填
                        disable: false, // 是否隐藏
                    }
                }).then(res => {
                    //上传完后的头像地址 和自己的微信昵称
                    console.log(res, '结果!!!', res.avatarUrl, res.nickName)

                    this.getregister(this.mobile ,this.openid,res.avatarUrl,res.nickName)
                }, err => {
                    console.log("取消")
                });
            },
            // 取消授权 返回上一页
            cancelLogin() {
                wx.reLaunch({
                    url: '/pages/my/my'
                })
            },
            getphonenumber(e) {
                if (!e.detail.encryptedData) {
                    uni.showToast({
                        title: "微信登录授权失败",
                        icon: "none"
                    });
                } else {
                    this.getwxtel(e)

                }
            },
            // 获取code
            getcode() {
                uni.login({
                    success: res => {
                        console.log(res.code, '当前服务器code');
                        this.code = res.code
                    }
                })

            },
            // 获取用户手机号
            getwxtel(e) {         
                if (e.detail.errMsg == "getPhoneNumber:ok") { // 用户允许或去手机号
                    this.$Request({
                        url: this.$Api.getwxtel,
                        method: 'POST',
                        data: {
                            encryptedData: encodeURIComponent(e.detail.encryptedData),
                            code: this.code,
                            iv: e.detail.iv
                        },
                        success: (res) => {

                            if (res.code == 200) {
                                console.log(res, '1111111111111111111111111111');
                                uni.setStorageSync('token', res.data.token)
                                setTimeout(() => {
                                    uni.switchTab({
                                        url: '/pages/my/my'
                                    })
                                }, 1000)
                            } else if (res.code == 100) {
                                this.mobile = res.mobile
                                this.openid = res.openid

                                  //如果没注册的话直接获取头像根据自己需求写要在哪调用
                                this.tapGetUserProfile()
                              
                                uni.setStorageSync('mobile', res.mobile)
                                uni.setStorageSync('openid', res.openid)
                                
                            } else {
                                
                            }
                        }
                    })
                }
            },

            //注册
            getregister(mobile, openid,avatar,nickname) {

                this.$Request({
                    url: this.$Api.getregister,
                    method: 'POST',
                    data: {
                        mobile: mobile,
                        openid: openid,
                        avatar:avatar,
                        nickname:nickname
                    },
                    success: (res) => {
                        if (res.code == 200) {
                            uni.setStorageSync('token', res.data.token)
                            uni.switchTab({
                                url: '/pages/my/my'
                            })
                        } else {
                            uni.showToast({
                                icon: 'none',
                                title: res.msg
                            })
                        }



                    }
                })
            },




         
        },
    }
</script>

<style lang="scss">
    .u-navbar__content__title.data-v-75dad532 {
        color: #fff !important;
    }

    .content {
        padding: 30rpx 30rpx 90rpx;
        font-size: 28rpx;

        &-wrap {
            padding: 90rpx 30rpx 60rpx;
        }
    }

    .main {
        position: fixed;
        top: 50%;
        left: 30rpx;
        right: 30rpx;

        &-logo {

            width: 280rpx;
            height: 280rpx;
            display: inline-block;

            image {
                border-radius: 50%;
            }

            &-wrap {
                margin-top: 180rpx;
                text-align: center;
            }
        }

        &-btn {
            background: $bgcolor;
            color: #fff;
            text-align: center;
            height: 80rpx;
            border-radius: 30px;
            margin-bottom: 30rpx;
            line-height: 80rpx;
            font-size: 28rpx;
        }

        .cancel {
            background-color: #999;
            color: #fff;
            font-size: 28rpx;
        }
    }
</style>

请去插件官网引入获取昵称、头像的弹窗,适用最新微信小程序 - DCloud 插件市场

或者直接下载压缩包文章来源地址https://www.toymoban.com/news/detail-718507.html

到了这里,关于关于uniapp中微信小程序获取最新昵称和头像的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序最新获取头像昵称方式

      前言 版本历史变迁 一、获取头像的正确姿势 二、获取昵称的正确姿势 总结 产品需要获取微信用户的昵称和头像。 这这还不简单,so easy! 通过 wx.getUserProfile 或者  wx.getUserInfo  就可以获取到。 但是获取的昵称是”微信用户“获取的头像是灰色的头像。 如果你也是上面这

    2024年02月13日
    浏览(20)
  • 关于微信小程序获取头像和昵称

    不知道为什么微信一直对开发者获取:微信头像+微信昵称。一直抱以限制态度,关于接口调用方法,也是一直在修改! open-type=“getUserInfo” 在2021年4月13日停用 wx.getUserInfo 在2021年4月28日停用 wx.getUserProfile 在2022年11月8日停用 但是如果你在接口 停用前 发布的,还可以正常使

    2023年04月08日
    浏览(29)
  • 微信小程序最新获取头像和昵称的方法 直接用!

    调整背景 微信小程序获取用户头像和昵称一个开放接口是 wx.getUserInfo , 2021年4月5日被废弃,原因是很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新

    2023年04月23日
    浏览(34)
  • uniapp 微信小程序 获取用户头像和昵称

    自2022年10月25日后,小程序  wx.getUserProfile 接口  被收回,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。如需获取用户头像昵称,可以手动获取,具体步骤👉「头像昵称填写能力」  ✍GitHub完整代码地址👉: https://github.com/c

    2024年02月08日
    浏览(32)
  • 关于微信小程序用户头像昵称获取规则调整后的头像昵称获取方式

    小程序用户头像昵称获取规则调整公告:小程序用户头像昵称获取规则调整公告 | 微信开放社区   点击登录按钮,先去检查用户授权信息,会弹出用户授权弹窗(首次),用户点击同意授权之后,调用 wx.login 方法获取登录凭证(code),把code传给后端写的登录接口进行解析登

    2024年02月05日
    浏览(38)
  • 微信小程序最新用户头像昵称获取规则调整应对措施(2022)

    小程序用户头像昵称获取规则调整公告 以前通过wx.getUserProfile获取用户信息,用户点击同意以后,便可以直接获取相关信息,但是官方最近做出了调整,直接将头像和昵称使用默认值填充了,所以我们无法直接获取用户的信息了,需要新增一个页面用于用户自定义头像和昵称

    2023年04月14日
    浏览(26)
  • 微信小程序获取用户头像和昵称完美解决方法(最新方法)

    自 2022 年 10 月 25 日 24 时后,用户头像昵称获取规则将进行如下调整 从基础库 2.21.2 开始支持 当小程序需要让用户完善个人资料时,可以通过微信提供的头像昵称填写能力快速完善。 根据相关法律法规,为确保信息安全,由用户上传的图片、昵称等信息微信侧将进行安全检

    2024年02月08日
    浏览(34)
  • 微信临时文件wxfile://tmp文件处理,微信小程序最新获取头像和昵称

    欢迎点击领取 -《前端开发面试题进阶秘籍》:前端登顶之巅-最全面的前端知识点梳理总结 *专享 技术栈:taro框架 + vue3版本 解决在微信小程序获取微信头像时控制台报错: 找不着wxfile://tmp 文件路径,失败 ,原因如下:因为微信提供给我开发者的是一个本地的临时文件是会失

    2024年02月09日
    浏览(38)
  • 【微信小程序】新版获取用户头像昵称(uniapp)(完整版附源码)

    需求 获取微信用户头像和昵称 问题 其实实现起来不复杂,复杂的是近几年微信小程序文档对于获取用户信息这块的api一直在更新,而查看了很多帖子基本都是用的旧的api,wx.getUserProfile(Object object) 和 wx.getUserInfo(Object object),旧的api只适用于低版本的基础库,对于当下的最新

    2024年01月16日
    浏览(54)
  • uniapp微信小程序获取用户头像和昵称填写能力调整解决方案

    微信小程序填充头像button按钮开放了open-type=\\\" chooseAvatar\\\"  微信小程序填充昵称input按钮开放了type=\\\"nickname\\\"  小程序 wx.getUserProfile 接口将被收回,「头像昵称填写能力」支持获取用户头像昵称 : 文章目录 一、调整背景 二、解决方案 在小程序内,开发者可以通过 wx.login 接口

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包