微信小程序> 微信小程序~新版授权用户登录例子

微信小程序~新版授权用户登录例子

浏览量:3484 时间: 来源:_龙衣

要实现的效果

  • 在用户进入个人中心,直接弹出获取用户信息弹窗
    • 以前能够直接弹出授权弹窗
    • 现在需要点击一个按钮后才弹出授权弹出
  • 显示圆形的用户头像

如何获取用户信息?

官方文档链接

授权弹窗

官方获取用户信息文档调整
为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败。正式版暂不受影响。

也就是以前的 wx.getUserInfo 不直接弹出授权窗口了,而且在新版中调用会直接返回fail,现在的做法呢就是通过点击一个button 去实现用户授权功能。

通过点击按钮去授权这也是大部分开发者不愿接受的,毕竟在页面中添加一个按钮太不和谐了,但是在微信的地盘,还是得按着人家的套路走。

文档中说明了有两种方式能够获取用户信息

  • 一个是利用 open-data获取公开的用户信息
open-data type="userNickName" lang="zh_CN"/open-dataopen-data type="userAvatarUrl"/open-dataopen-data type="userGender" lang="zh_CN"/open-data
  • 另一个是利用button 组件将 open-type 指定为 getUserInfo 类型
  !-- 需要使用 button 来授权登录 --  button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo"授权登录/button  view wx:else请升级微信版本/viewPage({  data: {    canIUse: wx.canIUse('button.open-type.getUserInfo')  },  onLoad: function() {    // 查看是否授权    wx.getSetting({      success (res){        if (res.authSetting['scope.userInfo']) {          // 已经授权,可以直接调用 getUserInfo 获取头像昵称          wx.getUserInfo({            success: function(res) {              console.log(res.userInfo)            }          })        }      }    })  },  bindGetUserInfo (e) {  // 获取到用户信息    console.log(e.detail.userInfo)  }})

open-data 中实现圆形头像

直接贴代码了

view class='amountBg'  view class='img'    open-data type="userAvatarUrl"/open-data  /view  view class='account'    view class='nick-name'      open-data type="userNickName" lang="zh_CN"/open-data    /view    view class='address'      open-data type="userCountry" lang="zh_CN"/open-data·      open-data type="userProvince" lang="zh_CN"/open-data·      open-data type="userCity" lang="zh_CN"/open-data    /view  /view/view

css 样式如下:

.amountBg {  display: flex;  flex-direction: row;  height: 100px;  background-color: #5495e6;  align-items: center;}.img {  overflow: hidden;  display: block;  margin-left: 20px;  width: 49px;  height: 49px;  border-radius: 50%;}.account {  width: 70%;  color: #fff;  margin-left: 10px;  align-items: center;}.nick-name{  font-family: 'Mcrosoft Yahei';  font-size: 16px;}.address{  font-size: 13px;}.nav {  width: 15px;  color: #fff;}

参考

CSS display 属性
CSS overflow 属性

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎