小程序获取头像试试水 02《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232

进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有详细的变现教程等你来。

前言

《 程序员变现指南之 微信&QQ 小程序 真的零基础开发宝典》
本系列文章参考《微信小程序开发实战》
教程出完后将会有变现直播,请关注CSDN社区活动公告:https://bbs.csdn.net/forums/A757291228?spm=1001.2014.3001.6682&typeId=19380。

在社区中发文每周将会在活跃前十送出:

  • 一本实物书籍
  • 多份实物小礼品
  • 每月送出机械键盘等奖励。

教程所需

由于小程序开发需要一定的基础,这些基础需要提前掌握,本教程只对小程序开发进行零基础说明。

  • 微信小程序开发工具,下载链接:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

  • JavaScript基础

  • HTML基础

目录 持续更新:

小程序的 HelloWord 01《 程序员变现指南之 微信&QQ 小程序 真的零基础开发宝典》
小程序获取头像试试水 02《 程序员变现指南之 微信&QQ 小程序 真的零基础开发宝典》
小程序仿微信发现页 03《 程序员变现指南之 微信&QQ 小程序 真的零基础开发宝典》

一、简单布局

现在开始写一个获取微信头像的小程序,第一步需要对这个页面布局。
显示用户头像需要一个图片显示的区域,在小程序中需要使用<image>组件;显示获取的用户的用户名需要使用<text>组件;在此基础上还需要一个按钮,点击按钮获取用户信息,需要使用一个<button>组件。

我们回到 index.wxml 文件中,在文件中添加如下代码:

<view>
<image></image>
<text></text>
<button>获取用户信息</button>
</view>

在这里插入图片描述
以上代码中 view 标签是类似于 div 的标签,作为一个包裹容器。
保存后可以在预览区看到页面显示效果:
在这里插入图片描述
这时我们回到代码中,其中<image></image>用于显示图片,在此没有任何信息,所以在预览区中并无任何显示,<text></text>标签同样如此;在按钮标签<button>获取用户信息</button>中已出现了与标签内容一致的显示效果。

接下来我们在 index.js 中为这个按钮增加逻辑,在点击后获取用户信息。

二、信息获取

此时我们在按钮上绑定一个事件:

<button bindtap="getUserProfile">获取用户信息</button>

以上代码中 bindtap 表示为这个按钮绑定一个点击事件,响应的函数是 getUserProfile。

getUserProfile 是小程序的一个开放接口,用于获取用户信息(基础库 2.10.4 开始支持,低版本需做兼容处理。文档位置:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html)。

但是这个接口需要我们传递某一些参数,如下图所示:

其中desc是必传参数,在此处没必要搞清楚其它参数含义。
咱们需要在 index.js 中编写此函数,以至于让我们可以传参和获取用户信息。

点击 index.js 在 Page 代码中增加我们需要的函数:

getUserProfile() {wx.getUserProfile({desc: '用户注册',success: res => {console.log("获取用户信息成功", res)},fail: res => {console.log("获取用户信息失败", res)}})},

getUserProfile 函数中使用 wx.getUserProfile 表示调用公共接口,desc 为需要传递的参数,desc 所填写的内容为为什么需要调用这个接口获取信息,或者说我需要填写的信息用于什么用途。在此处是用于“用户注册”。

接着使用 success 表示调用成功后,成功获取用户信息后需要执行的流程,在此使用 console.log 打印出接收到的用户信息:

success: (res) => {console.log("获取用户信息成功", res)
},

其中success 所接收的 res 为获取用户信息后得到的结果。

既然有成功获取信息的流程那么必然有失败获取用户信息后所需要执行的流程,在此编写了一个失败后流程 fail:

fail: res => {console.log("获取用户信息失败", res)
}

当然所接收的参数名 res 可以自己设定,例如如下示例:

success: userinfo => {console.log("获取用户信息成功", userinfo)
},
fail: failinfo => {console.log("获取用户信息失败", failinfo)
}

接下来点击获取用户信息将会提示是否允许,点击允许:

接着就会在 console 中打印出用户信息:

此时我们可以从信息中发现,在整个结果 res 中,userInfo 节点是用户信息,那么只需要在console.log 中使用 res.userInfo 便可以获取到 userinfo 的信息:

console.log("获取用户信息成功", res.userInfo);

此时我们可以在 index.js 中创建一个变量存储该 userInfo 的值,如下图黄色框选位置,接着在 success 的流程中对该变量进行赋值:

data: {userInfo: null},getUserProfile() {wx.getUserProfile({desc: '用户注册',success: res => {console.log("获取用户信息成功", res.userInfo);this.setData({userInfo: res.userInfo});},fail: res => {console.log("获取用户信息失败", res);}})},

在这里插入图片描述
以上代码中 data:{} 表示设置变量,userInfo 是其中的变量,该变量的初始值为 null,接着再到流程中使用 this.setData 表示设置当前文件中的变量值,在 setData 中设置 userInfo的值为 res 结果中的 userInfo 节点值,此时就获得了userInfo 值,再将该值与在前端进行获取即可。

此时我们保存后测试数据,将会得到 userInfo 的信息:

三、绑定数据

接下来我们需要修改一下 index.wxml 文件的标签:

<view><image src="{{userInfo.avatarUrl}}"></image><text>{{userInfo.nickName}}</text><button bindtap="getUserProfile">获取用户信息</button>
</view>

在这里插入图片描述
此时在前端页面中新增了上图框选的代码。从以上 {{userInfo.avatarUrl}} 代码可知 userInfo 是index.js 文件中的变量,而 avatarUrl 是 userInfo 变量所保存的那个节点中的一个数据;由此可知,获取后台数据只需要使用两对花括号中使用变量加一个小数点便可以获取对应的值;在此 avatarUrl 表示一个所获取到的用户头像值,nickName 表示用户的昵称,由此就获取到了用户的信息。

在代码 <image src="{{userInfo.avatarUrl}}"></image> 中,src 属性表示这个图片的来源,直接赋值后即可显示头像。

运行后的效果如下:
在这里插入图片描述

四、样式布局

此时我们觉得整个页面并不好看,可以在 wxss 中添加一些样式给整个布局更加美观。

此时先调节图片大小,在 index.wxss 中添加如下样式:

在这里插入图片描述
我们需要要注意的是 10vh 中的 vh 是视窗高度的意思。在微信小程序中 1vh 表示视窗高度的 1%;1vw表示一个视窗宽度的 1%。你可能问我为什么宽度不设置成 10vw?那是因为宽度高度肯定是不一致的,不是用同一个相同的度量去设置宽度我此时的图片就肯定不是一个圆。随后我设置了 border-radius 表示圆角设置,50% 会让我的图片变成圆角,这样就是圆形头像了。

效果如下:

在这里插入图片描述

接着在 wxss 中创建一个类样式 .flestyle:

.flexstyle{height: 100vh;display: flex;flex-direction: column;align-items: center;justify-content: space-around;
}

在这里插入图片描述
以上 flexstyle 中主要设置了一个弹性伸缩盒,其中 height:100vh 表示这个 view 高度占满 100% 视窗; display:flex 表示将对象作为弹性伸缩盒显示;flex-direction: column; 表示确定主轴方向为垂直,可以理解为这个 view 中的布局为垂直布局;align-items: center; 表示其中的元素与交叉轴的中点对齐,由于当前布局为 column 垂直布局可以理解 align-items: center; 为居中对齐;justify-content: space-between; 表示元素都等间距显示。

接着在前端代码处使用 class 对其引用:

显示结果如下:

发现并不好看,此时我们可以选择 justify-content 的属性值为 space-around,表示每个项目两侧的间隔相等,效果如下:


感觉好了很多,此时可以更改一下头像大小,或者字体大小使页面更美观。
完整样式如下:

image{width: 40vw;height: 40vw;border-radius: 50%;
}text{font-size: 70rpx;
}.flexstyle{height: 100vh;display: flex;flex-direction: column;align-items: center;justify-content: space-around;
}

效果如下:
在这里插入图片描述

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

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

相关文章

VNX NETAPP NAS 备份恢复

做多少次快照的时间是自定义 的&#xff0c;例如可以每隔4小时做一次。 例如有A&#xff0c;B&#xff0c;C&#xff0c;D四个文件。 1&#xff09;第一次快照&#xff08;COW&#xff09;&#xff1a; 快照是瞬时的&#xff0c;拍照时候创建了一个快照空间&#xff0c;例如20%…

Git之cherry-pick命令

1 需求 有时需要把某远程分支(比如dev分支)的某一次提交合并到另一远程分支(比如master分支),这就需要用到git cherry-pick命令。 比如我们现在有0.1分支和0.2分支,我在0.1分支上提交了最后一次代码,推上去了,现在需要合并这次提交到0.2 2 操作步骤 我们先到0.1分支…

【空间数据库】时空数据库,时态数据模型详解

一、时态空间数据库概述 现实世界的数据不仅与空间相关,而且与时间相关。在许多应用领域,如环境监测、抢险救灾、交通管理、医疗救援等,相关数据随着时间变化而变化,称之为时态数据。很多空间数据库应用都涉及时态数据,这些应用不仅需要存取空间数据库的当前状态,也需要存…

输出日志实例改成用Spring的AOP来实现

1.采用Interception Around通知的形式实现 Interception Around通知会在Join Point的前后执行&#xff0c;实现Interception Around通知的类需要实现接口MethodInterceptor。其实现思路是&#xff1a; 1&#xff09;首先实现接口MethodInterceptor&#xff0c;在Invoke()方法里…

基于.NetCore开发博客项目 StarBlog - (9) 图片批量导入

系列文章基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客&#xff1f;基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目基于.NetCore开发博客项目 StarBlog - (3) 模型设计基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入基于.N…

zookeeper 入门讲解实例 转

转 http://www.blogjava.net/BucketLi/archive/2010/12/21/341268.htmlzookeeper使用和原理探究&#xff08;一&#xff09;zookeeper介绍zookeeper是一个为分布式应用提供一致性服务的软件&#xff0c;它是开源的Hadoop项目中的一个子项目&#xff0c;并且根据google发表的&l…

小程序仿微信发现页 03《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

本系列教程是针对粉丝的变现教程&#xff0c;还不是粉丝的可以关注我并且到社区&#xff1a;https://bbs.csdn.net/topics/603436232 进行打卡&#xff0c;不是老粉的也可以获取最终的技术变现学习&#xff0c;最终还有详细的变现教程等你来。 前言 《 程序员变现指南之 微信…

Silverlight与WCF之间的通信(4)silverlight以net.tcp方式调用console上寄宿的wcf服务

&#xff08;由于最近是针对一个demo进行的研究&#xff0c;在之前公开过代码结构&#xff0c;这里只是对需要改动的地方加以说明&#xff09; WCF4.0使得编写wcf服务不再那么复杂&#xff0c;去掉了许多的配置信息&#xff0c;客户端只需要一个服务地址&#xff0c;便可在系统…

【空间数据库】空间数据库引擎(Spatial DataBase Engine)ArcSDE详解

一、空间数据库引擎概述 空间数据库引擎的概念最早由ESRI提出。ESRI对SDE的定义是:从空间数据管理的角度看,SDE是一个连续的空间数据模型,借助这一模型,我们可以将空间数据加人到关系数据库系统( RDBMS)中去。 SDE可以理解为基于特定的空间数据模型,在特定的数据存储、数…

Git之提示There is no tracking information for the current branch.

1 问题 我项目比如是0.2分支&#xff0c;我需要修改项目的git地址&#xff0c;然后再pull新的代码 1&#xff09;修改github地址&#xff08;读者可以忽略&#xff09; 1.git remote 查看所有远程仓库 2.git remote rm origin 删除之前的版本库 3.git remote add origin htt…

Maui学习之路(一)--Windows窗体设置

Maui的学习之路作为 Maui的先行者&#xff0c;我有话要说&#xff0c;微软你为了让我成为牛 B 的程序员真的是煞费苦心&#xff0c;你一定是觉得我不够牛逼所以针对我&#xff0c;存心想气死我。好了废话不多说&#xff0c;Maui现在也算是正式发布了&#xff0c;我有点想用它来…

Git 常用命令大全

Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码&#xff0c;管理私人的文档和源代码也有很多优势。 Git常用操作命令&#xff1a; 1) 远程仓库相关命令 检出仓库&#xff1a;$ git clone git://github.com/jquery/jquery.git 查看远程仓库&#…

为什么本地使用js或jquery操作cookie在谷歌浏览器chrome中不生效?

2019独角兽企业重金招聘Python工程师标准>>> 为什么本地使用js或jquery操作cookie在谷歌浏览器chrome中不生效&#xff1f;新手学习js或jquery时&#xff0c;一般是在本地调试&#xff08;前端学习一般用不到服务器端&#xff09;&#xff0c;当学习到cookie一节时&…

全解小程序猜数字游戏 04《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

本系列教程是针对粉丝的变现教程&#xff0c;还不是粉丝的可以关注我并且到社区&#xff1a;https://bbs.csdn.net/topics/603436232 进行打卡&#xff0c;不是老粉的也可以获取最终的技术变现学习&#xff0c;最终还有详细的变现教程等你来。 社区有奖励 下面有投票 本文也…

Android之解决主页面Activity监听fragment退出问题(由NavHostFragment和RxFragment一起管理fragment)

1、 问题 app里面目前主页面是一个activity,然后部分fragment是由NavHostFragment管理,当splash、login等页面也放在navigation时,按手机的返回键这些页面只能一页页回退,因为设置了 app:defaultNavHost="true" 并不能在某个页面例如splash、login按返回键时退…

linux之ps命令详解

linux中ps(process status) 命令是LINUX下最常用的也是非常强大的进程查看命令&#xff0c;运用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等。 ps命令最常用的是用于监控后台进程的工作情况。 Linux 查看进程p…

【空间数据库】传统数据模型(层次、网状、关系)和空间数据模型详解

数据模型是指数据库的组织形式,它决定了数据库中数据之间联系的表达方式,即把在计算机中表示客观事物及其联系的数据及结构称为数据模型。本文详细讲述传统三大数据模型和空间数据模型。 一、数据模型概述 数据模型是指数据库的组织形式,它决定了数据库中数据之间联系的表…

聊聊 C# 中的多态底层 (虚方法调用) 是怎么玩的

最近在看 C 的虚方法调用实现原理&#xff0c;大概就是说在 class 的首位置存放着一个指向 vtable array 指针数组 的指针&#xff0c;而 vtable array 中的每一个指针元素指向的就是各自的 虚方法&#xff0c;实现方式很有意思&#xff0c;哈哈&#xff0c;现在我很好奇 C# 中…

sublime text 3 安装、添加命令行启动、汉化、注册码

1. 安装sublime&#xff1a; 下载&#xff1a;http://www.sublimetext.com/3 添加命令行启动&#xff1a;设置环境变量->计算机->右键属性->高级系统设置->环境变量->系统变量->Path->编辑&#xff0c;加入";安装路径"(如&#xff1a;;D:\Progr…

MVC基础知识-View

public ActionResult Index() {ViewBag.Message "Modify this template to jump-start your ASP.NET MVC application.";//展现到视图中数据//~/Views/Home/Index.cshtmlreturn View(); //展现指定的视图&#xff0c;当没有指定视图名称时&#xff0c;默认是指向根目…