最新微信小程序获取头像昵称,直接用,uniapp获取微信小程序头像昵称

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

微信小程序获取用户头像和昵称一个开放接口是wx.getUserInfo,2021年4月5日被废弃,原因是很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户,后面新添加的一个开放接口wx.getUserProfile,也是用于获取用户头像和昵称。
下面是调整公告
微信小程序获取用户头像,微信小程序,uni-app,小程序
但如果我们现在再使用类似的方法时,往往无法得到自动获取用户头像昵称的效果。微信小程序开发现已不支持使用wx.getUserProfile 接口获取用户头像,同时也无法使用wx.getUserInfo 接口获取用户头像和昵称,因此在使用微信小程序获取头像昵称时,可能出现模拟器中成功但真机调试无法获取头像昵称的情况。

那么我们怎么获取呢?这时候就需要我们让用户自己手动授权微信头像昵称。

解决方案

  • 获取头像:需要将 button 组件 open-type 的值设置为 chooseAvatar,当用户选择需要使用的头像之后,可以通过 bindchooseavatar 事件回调获取到头像信息的临时路径。
<view class="avatarUrl">
	<button type="balanced" open-type="chooseAvatar" @chooseavatar="onChooseavatar">
		<image :src="avatarUrl" class="refreshIcon"></image>
	</button>
</view>

微信小程序获取用户头像,微信小程序,uni-app,小程序
用户可以选择微信头像,可以选择相册或者拍照。这里我给了默认头像。

  • 获取昵称:需要将 input 组件 type 的值设置为 nickname,当用户在此input进行输入时,键盘上方会展示微信昵称。
<view class="userName">
	<text>昵称:</text>
	<input :clearable="false" type="nickname" class="weui-input" :value="userName" @blur="bindblur"
		placeholder="请输入昵称" @input="bindinput" />
</view>

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

当用户获取输入框焦点的的时候,下方会弹出微信昵称,点击直接改变输入框内容,也可以自定义,这里我给了默认2到6个汉字。

因为我们获取到的头像地址是临时地址,所以拿到地址以后我们要将图片上传到自己的服务器上面。

下面是总体界面,界面可以自己随便改,最主要的就是button组件和input组件的type值

微信小程序获取用户头像,微信小程序,uni-app,小程序
最后的最后,干货来了,直接贴代码,拿上直接用,只需要改一下图片上传地址就行。文章来源地址https://www.toymoban.com/news/detail-672689.html

<template>

	<view class="containar">
		<cu-custom bgColor="none" :isBack="false">
			<block slot="content"><span style="color: #333;font-weight: 400;">获取用户头像昵称</span></block>
		</cu-custom>


		<view class="avatarUrl">
			<button type="balanced" open-type="chooseAvatar" @chooseavatar="onChooseavatar">
				<image :src="avatarUrl" class="refreshIcon"></image>
			</button>
		</view>
		<view class="userName">
			<text>昵称:</text>
			<input :clearable="false" type="nickname" class="weui-input" :value="userName" @blur="bindblur"
				placeholder="请输入昵称" @input="bindinput" />
		</view>

		<view style="width: 100%;height: 1px; background: #EEE;">

		</view>
		<view style="width: 700rpx; height: 20px; font-size: 13px; margin: auto; margin-top: 40rpx;">
			· 申请获取以下权限
		</view>
		<view style="width: 700rpx; height: 20px; font-size: 13px; margin: auto; color: #cbcbcb; margin-top: 25rpx;">
			· 获得你的信息(昵称、头像等)
		</view>

		<view class="btn">
			<u-button @click="onSubmit" type="primary">保存</u-button>
		</view>
	</view>
</template>
<script>
	import {
		pathToBase64,
		base64ToPath
	} from 'image-tools'
	import {
		uploadNameImg,
		uploadImg
	} from '@/api/owner-login.js';

	export default {
		data() {
			return {
				// 下面我都给了默认值,根据自己的需求可以决定需不需要默认值
				avatarUrl: 'https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png',
				userName: this.getRandomName(Math.floor(Math.random() * (6 - 2) + 3))
			};
		},
		onLoad(option) {
			this.appUserId = option.appUserId
			console.log('option', option.appUserId);
		},
		onShow() {},
		methods: {
			bindblur(e) {
				this.userName = e.detail.value; // 获取微信昵称
			},
			bindinput(e) {
				this.userName = e.detail.value; // 获取微信昵称
			},
			onChooseavatar(e) {
				let self = this;
				let {
					avatarUrl
				} = e.detail;
				this.avatarUrl = avatarUrl
			},
			onSubmit() {
				var that = this
				uni.login({
					"provider": "weixin",
					"onlyAuthorize": true, // 微信登录仅请求授权认证
					success: function(event) {
						const {
							code
						} = event
						const name = that.userName
						// 判断头像以及昵称不为空 再上传
						if (that.userName && that.avatarUrl) {
								console.log(that.avatarUrl) // 返回的是零时图片地址
								// 这里是图片上传的方法,是我封装好的axios,到时候只需要请求自己的图片上传就OK,
								uploadImg({pic:that.avatarUrl}).then(resResult => {
									// 拿到自己服务器的图片地址保存就可以了
									that.avatarUrl = resResult.data
									that.save()
								})
						} else {
							uni.showToast({
								icon: 'none',
								title: '请上传头像并填写昵称'
							})
							return false;
						}
					},
					fail: function(err) {
						console.log('err', err);
					}
				})
			},

            /**
             * @description 保存事件,用于保存用户头像昵称
             * 
             * */

			save() {
				uni.showLoading({
					title: '加载中'
				});
				const data = {
					nickName: this.userName,
					headImgUrl: this.avatarUrl
				}
				uploadNameImg(data).then(res => {
					uni.reLaunch({
						url: '../index/index'
					});
				})
			},
            
            /**
             * @description 生成随机名字方法
             * */

			randomAccess(min, max) {
				return Math.floor(Math.random() * (min - max) + max)
			},

			decodeUnicode(str) {
				//Unicode显示方式是\u4e00
				str = "\\u" + str
				str = str.replace(/\\/g, "%");
				//转换中文
				str = unescape(str);
				//将其他受影响的转换回原来
				str = str.replace(/%/g, "\\");
				return str;
			},

			getRandomName(NameLength) {
				let name = ""
				for (let i = 0; i < NameLength; i++) {
					let unicodeNum = ""
					unicodeNum = this.randomAccess(0x4e00, 0x9fa5).toString(16)
					name += this.decodeUnicode(unicodeNum)
				}
				return name
			},
		}
	}
</script>
<style lang="scss" scoped>
	.containar {
		width: 100vw;
		height: 100vh;
		background: #fff;
		box-sizing: border-box;
		padding: 0 30rpx;

		.avatarUrl {
			padding: 80rpx 0 40rpx;
			background: #fff;

			button {
				background: #fff;
				line-height: 80rpx;
				height: auto;
				border: none !important;
				width: auto;
				// padding: 20rpx 30rpx;
				margin: 0;
				display: flex;
				border: none;
				justify-content: center;
				align-items: center;

				&::after {
					border: none;
				}

				.refreshIcon {
					width: 160rpx;
					height: 160rpx;
					border-radius: 50%;
					background-color: #ccc;
				}

				.jt {
					width: 14rpx;
					height: 28rpx;
				}
			}
		}

		.userName {
			background: #fff;
			padding: 20rpx 30rpx 80rpx;
			display: flex;
			align-items: center;
			justify-content: center;

			.weui-input {
				padding-left: 60rpx;
			}
		}

		.btn {
			margin-top: 30rpx;
		}
	}
</style>

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

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

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

相关文章

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

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

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

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

    2024年02月08日
    浏览(32)
  • uniapp中微信小程序获取用户头像昵称

    关于小程序用户头像昵称获取规则调整的公告 意思就是说 从 2022 年 10 月 25 日 24 时后 wx.getUserProfile 获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户” 最新:用户昵称,头像获取规则 onChooseAvatar 方法必须使用 this.avatarUrl = \\\'data:image/jpeg;base64,\\\' + wx.getFileS

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

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

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

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

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

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

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

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

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

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

    2024年02月11日
    浏览(47)
  • 2023年最新微信小程序获取用户openid、头像昵称的填写能力和方法原生写法

    大家好,下面是我身为小白分享给小白哈, 不懂就问相互学习共同进步! 亲测自用原生代码,感谢大神指点赐教鼓励勿喷; 只需9个一键复制粘贴步骤一气呵成; 先来 本文最终主要实现效果 : 获取微信小程序用户头像昵称的填写能力和方法原生写法 一:先捋一捋思路逻辑

    2024年02月08日
    浏览(49)
  • Uniapp写微信小程序时,如何获取用户头像和昵称使用微信用户信息登录?

    实现效果如下: 首先使用uni.login获取用户登录凭证code: 官方代码: success返回参数如下: 头像选择: 需要将 button 组件  open-type  的值设置为  chooseAvatar ,当用户选择需要使用的头像之后,可以通过  bindchooseavatar  事件回调获取到头像信息的临时路径。 从基础库2.24.4版本

    2024年02月04日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包