【微信小程序独立开发2】授权登录 上

前言:这一节设想完成的功能为进入小程序后请求授权信息,用户授权登录后,弹出宠物登记页面,并根据宠物类型播放背景音乐

小程序昵称头像在之前的版本获取规则为触发后弹出用户授权弹窗,授权后可直接获取用户头像和昵称,但是在2.27.1版本后,小程序收回了wx.getUserProfile接口,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。

当前版本为3.31,这里使用新版推荐方式获取用户数据,也可降级到2.27.1版本前,使用之前的接口。

1、编写底部tabBar页面

拟设置三个tabBar,分别为记录,成长,Ta的

首先创建Icons文件夹,用于保存tabBar图片

1、从iconfont中选取几个图标来充当tabBar图标,每个图标各选择两组,分别为选中和未选中

iconfont-阿里巴巴矢量图标库

2、在app.json中添加页面

 3、添加tabBar

在app.json中添加

"tabBar": {"color": "#999","selectedColor": "#FF5700","backgroundColor": "#fafafa","list": [{"pagePath": "pages/record/record","text": "记录","iconPath": "./icons/1.png","selectedIconPath": "./icons/3.png"},{"pagePath": "pages/grow/grow","text": "成长点滴","iconPath": "./icons/6.png","selectedIconPath": "./icons/5.png"},{"pagePath": "pages/Ta/Ta","text": "Ta的","iconPath": "./icons/2.png","selectedIconPath": "./icons/4.png"}]},

此时页面效果

2、编写Ta的页面

页面未登录时,显示默认头像和默认昵称,点击编辑个人信息后,显示个人信息编辑页面

头像可选择使用微信头像或者从相册上传头像,昵称同上

首先编写一个简单的展示页面,未登录时,头像,昵称和ID显示默认值

<!--pages/Ta/Ta.wxml-->
<view class="pet_wrapper"><!-- 用户信息 --><view class="user_info_wrapper"><view class="user_info"><image src="{{avatarUrl}}" mode="widthFix"/><view class="user"><view class="user_id">ID:{{userId}}</view><view class="user_name">{{nickName}}</view></view><button class="edit_user_info" bind:tap="editUserInfo">编辑个人信息</button></view></view><!-- 功能栏 -->
</view>
// pages/Ta/Ta.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
const defaultNickName = "铲屎官"
const defaultUserId = "001"
Page({/*** 页面的初始数据*/data: {avatarUrl: defaultAvatarUrl,nickName: defaultNickName,userId: defaultUserId},/*** 生命周期函数--监听页面加载*/onLoad(options) {},editUserInfo(){wx.navigateTo({url: '/pages/userInfo/userInfo',})},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {},/*** 页面上拉触底事件的处理函数*/onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {}
})
/* pages/Ta/Ta.wxss */
.pet_wrapper{.user_info_wrapper{.user_info{display: flex;margin: 20rpx;image{flex: 1;width: 30rpx;height: 30rpx;border-radius: 100%;}.user{flex: 2;display: flex;flex-direction: column;width: 80rpx;height: 100rpx;margin-left: 30rpx;.user_id{flex: 2;font-size: 28rpx;}.user_name{flex: 1;font-size: 28rpx;}}button{flex: 1;width: 80rpx;height: 60rpx;background-color: #fff;justify-content: center;font-size: 25rpx;}}}
}

给button绑定事件,当点击按钮时,跳转到个人信息编辑页

在app.json中添加userInfo

 设置userInfo页面的顶部导航栏名称

基本页面仿照宠本本小程序进行编写

 

<!--pages/userInfo/userInfo.wxml-->
<view class="edit_userInfo_wrap"><!-- 用户头像 --><view class="user_avatar_wrap"><image src="{{userInfo.avatarUrl}}"  mode="widthFix"/></view><!-- 用户基本信息 --><view class="user_info_wrap"><!-- 昵称设置 --><view class="user_name_wrap"><view class="user_name" ><text>铲屎官昵称</text><navigator url="/pages/editNickName/editNickName">{{userInfo.nickName}}</navigator> </view></view><!-- 基本信息设置 --><view class="edit_user_info_wrap"><view class="user_birthday"><text>生日</text></view><view class="user_sex"><text>性别</text></view><view class="user_address"><text>地区</text></view></view><!-- 手机号设置 --><view class="phone_wrap"><view class="userId_wrap"><text>ID</text><view class="user_id">{{userInfo.userId}}</view></view><view class="user_telPhone"><text>手机号</text>{{userInfo.telPhone}}</view></view></view><!-- 保存按钮 --><view class="save_button"><button >保存编辑</button></view>
</view>
/* pages/userInfo/userInfo.wxss */
page{background-color: #f5f5ed;
}
.edit_userInfo_wrap{display: flex;flex-direction: column;height: 100vh;.user_avatar_wrap{flex: 1;display: flex;align-items: center;justify-content: center;margin-top: 20rpx;image{border:2rpx solid white;width: 150rpx;height: 150rpx;border-radius: 100%;}}.user_info_wrap{flex: 6;line-height: 100rpx;margin: 20rpx 50rpx 50rpx 50rpx;font-size: 26rpx;.user_name_wrap{background-color: #fff;border-radius: 25rpx;.user_name{margin: 30rpx;display: flex;text{flex: 1;color: #615839;font-size: 30rpx;}navigator{}}}.edit_user_info_wrap{background-color: #fff;border-radius: 25rpx;.user_birthday{text{color: #615839;font-size: 30rpx;}margin: 30rpx;border-bottom: 1rpx solid #f5f5ed;}.user_sex{text{color: #615839;font-size: 30rpx;}margin: 30rpx;border-bottom: 1rpx solid #f5f5ed;}.user_address{text{color: #615839;font-size: 30rpx;}margin: 30rpx;}}.phone_wrap{background-color: #fff;border-radius: 25rpx;.userId_wrap{display: flex;margin: 30rpx;border-bottom: 1rpx solid #f5f5ed;text{flex: 1;color: #615839;font-size: 30rpx;}.user_id{}}.user_telPhone{text{color: #615839;font-size: 30rpx;}margin: 30rpx;}}}.save_button{flex: 1;border-radius: 40rpx 40rpx 0 0 ;background-color: #fff;button{margin-top: 15rpx;width: 80%;border-radius: 30rpx;font-size: 28rpx;font-weight: 600;background-color: #fee05a;}}
}

此时的页面效果:

在下节完成头像、昵称、手机号的获取和生日、性别、地区组件的编写,属实写累了0.0 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/619032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 CMake 和 Ninja 构建 C/C++ 项目的教程

使用 CMake 和 Ninja 构建 C/C 项目的教程 CMake 是一个跨平台的开源构建工具&#xff0c;它简化了项目的构建过程。而 Ninja 是一个快速、轻量级的构建系统&#xff0c;与 CMake 配合使用可以提高项目的构建效率。本教程将向你介绍如何使用 CMake 和 Ninja 来构建你的 C/C 项…

金融科技革命:数字化如何塑造未来经济_光点科技

当今世界&#xff0c;数字化不仅是一种趋势&#xff0c;更是深刻重塑经济和金融领域的关键力量。在这个过程中&#xff0c;金融科技&#xff08;FinTech&#xff09;崭露头角&#xff0c;成为革命性变化的代名词。以下是数字化技术在经济和金融领域的几个关键应用&#xff0c;它…

YOLOv5独家原创改进:多层次特征融合(SDI)结合PConv、DualConv、GSConv,实现二次创新 | UNet v2最新论文

💡💡💡本文独家改进:多层次特征融合(SDI)高效结合DualConv、PConv、GSConv等实现二次创新 1)替代原始的Concat; 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡�…

高度自适应scroll-view,uniapp项目

中间粉红的区域高度自适应,不管换什么机型&#xff0c;高度都自适应 <template><!-- 合同-待确认 --><view class"viewport"><!-- 上 --><view class"top-box"><!-- tab --><view class"tabs"><te…

HTML5+CSS3+JS小实例:音频可视化

实例:音频可视化 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><m…

C++学习笔记——私有继承、多重继承、类模板

目录 一、私有继承 二、多重继承 三、类模板 四、一个使用私有继承的示例代码 4.1代码 4.2输出结果 五、多重继承案列 六、类模板案例 C中的继承和模板是非常强大和灵活的特性&#xff0c;它们可以帮助我们实现代码复用、抽象和泛化等目标。本文将着重介绍私有继承、多…

class_1:qt的安装及基本使用方式

一、选择组件&#xff1a; 1、windows编译工具&#xff1a;MinGW 7.30 32-bit MinGW 7.30 64-bit 2、QT源代码&#xff1a;sources 3、QT的绘图模块&#xff1a;QT charts 4、QT虚拟键盘&#xff1a;QT Virtual Keyboard 5、QT Creational 4.12.2 GDB 二、新建QT项目 文…

Linux完全卸载Anaconda3和MiniConda3

如何安装Anaconda3和MiniConda3请看这篇文章&#xff1a; 安装Anaconda3和MiniConda3_minianaconda3-CSDN博客文章浏览阅读474次。MiniConda3官方版是一款优秀的Python环境管理软件。MiniConda3最新版只包含conda及其依赖项如果您更愿意拥有conda以及超过720个开源软件包&…

高通平台开发系列讲解(USB篇)adb function代码分析

文章目录 一、FFS相关动态打印二、代码入口三、ffs_alloc_inst四、ep0、ep1&ep2的注册五、读写过程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文主要介绍高通平台USB adb function代码f_fs.c。 一、FFS相关动态打印 目录:msm-4.14/drivers/usb/gadget/fun…

docker+jmeter实现windows作为主控机,linux作为负载机的分布式压测环境搭建

dockerjmeter实现windows作为主控机&#xff0c;linux作为负载机的分布式压测环境搭建 1、搭建环境说明2、windows主控机安装Jmeter3、linux负载机安装Jmeter3.1、安装docker环境3.2、使用docker安装jmeter 4、windows主控机分发测试任务 1、搭建环境说明 准备一台windows主机…

时间序列数据库选型: influxdb; netdiscover列出docker实例们的ip,docker管理工具lazydocker、scope

influxdb influxdb: 有收费版本、有开源版本 influxdb 安装、启动(docker) docker run -itd --name influxdb-dev -p 8086:8086 influxdb #influxdb的web客户端(端口8003)被去掉了 #8006是web-service端口#docker exec -it influxdb-dev bashinfluxdb 自带web界面 从后面的…

Rust-函数

简介 Rust的函数使用关键字fn开头。 函数可以有一系列的输入参数&#xff0c;还有一个返回类型。 函数体包含一系列的语句(或者表达式)。 函数返回可以使用return语句&#xff0c;也可以使用表达式。 Rust编写的可执行程序的入口就是fn main()函数。 以下是一个函数的示例…

代码随想录算法训练营第四天 |24.两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题02.07.链表相交,142、环形链表II

链表基础 1、链表定义&#xff1a; &#xff08;1&#xff09;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null…

C++核心编程——文件操作

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

ROS无人机开发常见错误

一. Ubuntu 相关 1、SSH远程连接报错 解决方案&#xff1a;终端运行上述图中选中部分&#xff0c;更新一下即可 第一步&#xff1a; 第二步&#xff1a;根据提示输入yes后输入密码即可 第三步&#xff1a;成功后如下图所示 2、解决“E 无法获得锁/ var/lib/apt/lists/ (11 资…

Altium Desigenr 孔 规则修改2

1、过孔修改 在这里插入图片描述 2、物理孔

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator 线性控制器设计-轨迹跟踪&#xff08;Fellow a Desired Path&#xff09;

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 2

在 Part 1 中&#xff0c;我们一起了解了什么是 Prometheus 和 Grafana&#xff0c;以及使用这些工具的前提条件和优势。在本部分&#xff0c;将继续带您学习如何安装 Helm 以及如何使用 Prometheus Helm Charts。 开始使用 Helm 和 Helm Chart ArtifactHub 为 Helm Chart 提供…

Netty开篇——NIO章上(三)

Java NIO基本介绍 java non-blocking I/O 称为NIO(也叫New IO)。JDK4开始提供,同步非阻塞相关内容在 java.nio 包及子包下&#xff0c;对java.io 包中的很多类进行改写。三大核心: Channel(通道)&#xff0c;Buffer(缓冲区),Selector(选择器)NIO是面向缓冲区或者面向块编程的。…

Centos7.9服务器编译安装Nginx1.24.0和php8.3

Centos7.9服务器编译安装Nginx1.24.0和php8.3 服务器nginx原版本有安全漏洞,需要升级,由于原始是yum源安装,通过yum直接升级,无法正常升级完成,故而需要卸载yum源,重新编译安装。 1、查看原来nginx版本,ps查看原来nginx进程,运行状态: ps aux | grep nginx ​ root …