2023微信小程序使用open-type="chooseAvatar"获取用户头像信息,以及图像模糊解决方法方案

2023-09-15   阅读:3224   分类:后端    标签: 微信小程序

前景:国庆节快到了,很多小伙伴会使用微信小程序来制作国庆头像框,而小程序获取用户头像信息的 wx.getUserProfile 和 wx.getUserInfo 接口都已经于2022年废弃了,需要使用到新的方法来获取用户头像。

从基础库 2.21.2 开始支持 当小程序需要让用户完善个人资料时,可以通过微信提供的头像昵称填写能力快速完善。 根据相关法律法规,为确保信息安全,由用户上传的图片、昵称等信息微信侧将进行安全检测,组件从基础库2.24.4版本起,已接入内容安全服务端接口(mediaCheckAsync、msgSecCheck),以减少内容安全风险对开发者的影响。需要将 button 组件 open-type 的值设置为 chooseAvatar,当用户选择需要使用的头像之后,可以通过 bindchooseavatar 事件回调获取到头像信息的临时路径。

2、微信小程序获取用户头像新的接口替换方法

2.1、wxml代码:通过放置按钮,并加上open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar"属性:

<button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
  <image class="avatar" src="{{avatarUrl}}"></image>
</button> 

2.2、js代码:回调获取用户授权或者相册选择的图片,并赋值给image图片标签

const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Page({
  data: {
    avatarUrl: defaultAvatarUrl,
  },
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail 
    this.setData({
      avatarUrl,
    })
  }
})

3、图片模糊问题解决方案:很多小伙伴会发现获取的头像是模糊的,愿意是微信小程序接口返回的是默认头像是尺寸是132*132px的尺寸,也就是最小尺寸,以前的授权接口可以把后面参数改为0,达到获取高清图片

http://wx.qlogo.cn/mmopen/eTBFF2uBxbBTAW8ZrbmMJGuOq7nGZfGicWORE2vcZfsMwXscofgeEwevlSl8LFct2ZKibzxjqNjw94r2wI2xiaibY3TKxVRPC/132

改为:

http://wx.qlogo.cn/mmopen/eTBFF2uBxbBTAW8ZrbmMJGuOq7nGZfGicWORE2vcZfsMwXscofgeEwevlSl8LFct2ZKibzxjqNjw94r2wI2xiaibY3TKxVRPC/0

现在新的接口直接返回的就是临时地址,我们怎样来达到返回高清图片呢?

方案思路:我们可以把图片保存服务器上,然后服务端对图片进行无损放大,放大的同时图片也不会模糊,服务端通过第三方接口来解决图片模糊问题。

示例:使用官方案例精选图片高清化处理

注:有其他解决图片模糊的问题,欢迎下方留言探讨。

4、项目体验:

【腾讯云】 爆款2核2G3M云服务器首年 61元,2核2G4M云服务器新老同享 99元/年,续费同价

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://www.tpxhm.com/adetail/1018.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×