微信小程序授权登录界面

微信小程序授权登录界面微信小程序授权登录界面原先用的 wx getUserInfo Objectobject 现已改革现用的 wx getUserProfi Objectobject 获取用户信息 每次请求都会弹出授权窗口 用户同意后返回 userInfo 1login js 页面 constapp getApp 获取应用实例 Page data userInfo hasUserInfo false canIUseGetUs

微信小程序授权登录界面

原先用的 wx.getUserInfo(Object object) ,现已改革

现用的 wx.getUserProfile(Object object),获取用户信息。每次请求都会弹出授权窗口,用户同意后返回 userInfo

1 login.js页面

const app = getApp() //获取应用实例 Page({ 
    data: { 
    userInfo: { 
   }, hasUserInfo: false, canIUseGetUserProfile: false, }, onLoad() { 
    if (wx.getUserProfile) { 
    this.setData({ 
    canIUseGetUserProfile: true }) } }, goto:function(){ 
    wx.switchTab({ 
    url:'../pages/index/index' }) }, getUserProfile(e) { 
    wx.getUserProfile({ 
    desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 success: (res) => { 
    this.setData({ 
    userInfo: res.userInfo, hasUserInfo: true, }) }, }) }, bindGetUserProfile: function (e) { 
    if (e.detail.userProfile) { 
    //用户按了允许授权按钮 var that = this; // 获取到用户的信息了,打印到控制台上看下 console.log("用户的信息如下:"); console.log(e.detail.userProfile); //授权成功后,通过改变 hasUserInfo 的值,让实现页面显示出来,把授权页面隐藏起来 that.setData({ 
    hasUserInfo: false }); } else { 
    //用户按了拒绝按钮 wx.showModal({ 
    title: '警告', content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!', showCancel: false, confirmText: '返回授权', success: function (res) { 
    // 用户没有授权成功,不需要改变 hasUserInfo 的值 if (res.confirm) { 
    console.log('用户点击了“返回授权”'); } } }); } }}) 

2 login.wxml

<view class="content"> <block wx:if="{ 
    {!hasUserInfo}}"> <view class="header"> <image src='../image/wx_login.png'></image> </view> <button wx:if="{ 
    {canIUseGetUserProfile}}" bindtap="getUserProfile"> 申请获取以下权限</button> <button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button> </block> <block wx:else> <image class="userinfo-avatar" src="{ 
    {userInfo.avatarUrl}}" mode="cover"></image> <text class="userinfo-nickname">{ 
  {userInfo.nickName}}</text> <button class='btn' bindtap="goto" >登录成功 点击跳转</button> </block> </view> 

3 login.wxss

.header { 
    margin: 90rpx 0 90rpx 50rpx; border-bottom: 1px solid #ccc; text-align: center; width: 650rpx; height: 300rpx; line-height: 450rpx; } .header image { 
    width: 200rpx; height: 200rpx; } .content { 
    margin-left: 50rpx; margin-bottom: 90rpx; } .content text { 
    display: block; color: #9d9d9d; margin-top: 40rpx; } .bottom { 
    border-radius: 80rpx; margin: 70rpx 50rpx; font-size: 35rpx; } .bottom1{ 
    border-radius: 80rpx; margin: 70rpx 50rpx; font-size: 35rpx; } .btn { 
    padding: 0 60rpx; margin: 90rpx 0 90rpx 50rpx; background-color: #19be6b; text-align: center; vertical-align: middle; touch-action: manipulation; cursor: pointer; white-space: nowrap; font-size: 16px; top: 10%; left: 20%; position: relative; text-decoration: none; height: 44px; line-height: 44px; box-shadow: inset 0 0 0 1px #19be6b; background: #fff !important; color: #19be6b !important; display: inline-block; border-radius: 10rpx; } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230488.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月19日 下午7:01
下一篇 2026年2月19日 下午7:22


相关推荐

  • 人工智能猴子摘香蕉问题的逻辑表示_猴子拿香蕉实验感悟

    人工智能猴子摘香蕉问题的逻辑表示_猴子拿香蕉实验感悟猴子摘香蕉问题:一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为A,箱子位置为B,香蕉位置在C),如何行动可摘取到香蕉。代码样例:#includestructState{ intmonkey;//-1:MonkeyatA

    2026年4月14日
    6
  • 关于widthStep造成的问题

    关于widthStep造成的问题最近遇到一个很奇怪的问题,一直没有解决,就是在A图像中设置一个ROI,将其clone给B,然后对B进行二值化,输入为B,输出为C,这时二值化完后的图像C跟ROI区域的图像区域不同。通过查看发现罪魁祸首是widthStep变了。无意中解决了这个问题,做法如下:方法1:就是在A图像中设置一个ROI,将其clone给B,新建一个C,大小、位数和通道数同B,将Bclone给C,然后对C进行

    2022年6月9日
    33
  • 什么是大数据,大数据的处理流程,主要分为哪几步?[通俗易懂]

    一、大数据是什么?大数据,bigdata,《大数据》一书对大数据这么定义,大数据是指不能用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。这句话至少传递两种信息:1、大数据是海量的数据2、大数据处理无捷径,对分析处理技术提出了更高的要求二、大数据的处理流程下图是数据处理流程:1、底层是数以千亿计的数据源,数据源可以是SCM(供应链数据),4PL(物流数据),CRM(客…

    2022年4月11日
    53
  • mysql优化的几种方法_sgd优化算法

    mysql优化的几种方法_sgd优化算法1.SGDBatchGradientDescent在每一轮的训练过程中,BatchGradientDescent算法用整个训练集的数据计算costfuction的梯度,并用该梯度对模型参数进行更新:Θ=Θ−α⋅▽ΘJ(Θ)\Theta=\Theta-\alpha\cdot\triangledown_\ThetaJ(\Theta)优点:costfuction若为凸函数,能

    2025年8月18日
    5
  • Cinemachine学习笔记

    Cinemachine学习笔记以下都是转载内容,能够比较直观的学习一些基础内容。现在的Cinemachine更新了许多新的功能,但是Cinemachine插件都ExamplesScences,去看一下官方例子和文档来学习更佳*版本要求Unity2017.1及以上。参考资料: [官方]Unity2017.1正式版发布 Cinemachine插件:Cinemachine。 结合Timeline实现动画:Unity…

    2022年5月28日
    48
  • 计算机二进制和单位

    计算机二进制和单位计算机描述数据使用二进制 用 0 和 1 表示 常用进制有 二进制 八进制 十进制 十六进制 计算机中表示信息最小的单位是 位 用来表示一个二进制 0 或 1 信息 用 bit 表示 计算机处理信息的最小单位是 字节 B Byte 表示 8 位二进制信息 bit 为 1 字节 1B 8bit 1kb 1024B 1MB 1024kb 1GB 1024MB 1TB 1024MB 1PB 1024TB

    2026年3月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号