赞
踩
自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整:
对于上述 3,wx.getUserProfile 接口、wx.getUserInfo 接口、头像昵称填写能力的基础库版本支持能力详细对比见下表:
*针对低版本基础库,兼容处理可参考 兼容文档
文档地址:头像昵称填写 | 微信开放文档
项目实战以uniApp为例
- <template>
- <view class="containar">
- <view class="avatarUrl">
- <button type="balanced" open-type="chooseAvatar" @chooseavatar="onChooseavatar">
- <image :src="avatarUrl" class="refreshIcon"></image>
- </button>
- </view>
- <view class="nickname">
- <text>昵称:</text>
- <input type="nickname" class="weui-input" :value="nickName" @blur="bindblur" placeholder="请输入昵称"
- @input="bindinput" />
- </view>
-
- <view class="btn">
- <view class="btn-sub" @click="onSubmit">保存</view>
- </view>
- </view>
- </template>
-
- <script>
- export default {
- data() {
- return {
- avatarUrl: 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0',
- nickName: ''
- };
- },
- onLoad(option) {},
- methods: {
- bindblur(e) {
- // 获取微信昵称
- console.log('nickName', e)
- this.nickName = e.detail.value;
- },
- bindinput(e) {
- console.log('nickName', e)
- //这里要注意如果只用blur方法的话用户在输入玩昵称后直接点击保存按钮,会出现修改不成功的情况。
- this.nickName = e.detail.value;
- },
- onChooseavatar(e) {
- this.avatarUrl = e.detail.avatarUrl;
- },
- onSubmit() {
- if (this.nickName === '') {
- uni.showToast({
- icon: 'none',
- title: '请输入昵称'
- })
- return false;
- }
- uni.showLoading({
- title: '头像上传中...'
- });
- this.$uploadFile({
- url: '', // 自己请求后台地址
- filePath: this.avatarUrl
- }).then((res)=>{
- console.log(res)
- uni.showToast({
- title: '上传成功',
- icon: 'success'
- })
- setTimeout(() => {
- uni.navigateBack({
- delta: 1,
- })
- }, 1000)
-
- })
-
- }
- }
- };
- </script>
- <style lang="scss">
- .containar {
- .avatarUrl {
- padding: 80rpx 0 40rpx;
- background: #fff;
-
- button {
- background: #fff;
- line-height: 80rpx;
- height: auto;
- width: auto;
- padding: 20rpx 30rpx;
- margin: 0;
- display: flex;
- justify-content: center;
- align-items: center;
-
-
- .refreshIcon {
- width: 160rpx;
- height: 160rpx;
- border-radius: 50%;
- }
-
- .jt {
- width: 14rpx;
- height: 28rpx;
- }
- }
- }
-
- // botton 去除边框
- button::after {
- border: none;
- }
-
- .nickname {
- background: #fff;
- padding: 20rpx 30rpx 80rpx;
- display: flex;
- align-items: center;
- justify-content: center;
-
- .weui-input {
- padding-left: 60rpx;
- }
- }
-
- .btn {
- width: 100%;
-
- .btn-sub {
- width: 670rpx;
- margin: 80rpx auto 0;
- height: 90rpx;
- background: #DF8585;
- border-radius: 45rpx;
- line-height: 90rpx;
- text-align: center;
- font-size: 36rpx;
- color: #fff;
- }
- }
- }
- </style>
说明:$uploadFile 方法是自己封装的,也可以参考uniapp中的。
uni.uploadFile({ url: '后台uploadFile接口', filePath: avatarUrl, name: 'file', header: { token: '自己的token', }, success: (res) => { // 赋值操作 }, fail: (error) => { uni.showToast({ title: error, duration: 2000 }); }, complete: () => { uni.hideLoading(); } });
基于uniapp 封装的upload方法:
然后将方法挂载vue 原型上 就可以直接用this调用。
在main方法进行挂载。
分享到此结束,需要做小程序或者管理系统的可以私信我。