小程序獲取頭像試試水 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.pswp.cn/news/286718.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286718.shtml
英文地址,請注明出處:http://en.pswp.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;默認是指向根目…