【微信小程序】获取用户头像和ID

课程 中国海洋大学22夏《移动软件开发》
实验名称 实验1:第一个微信小程序

一、实验目标

1、学习使用快速启动模板创建小程序的方法;

2、学习不使用模板手动创建小程序的方法。

二、实验步骤

1. 自动生成小程序

准备工作: 在微信公众平台上小程序处注册并下载微信开发者工具。

微信开发者工具版本:1.06.2208010

  1. 项目创建

    打开微信开发者工具。在左侧栏中选择小程序后选择新建项目。

    项目名称与目录为默认;

    AppID点击右侧三角后即可选择;

    后端服务选择不适用云服务;

    模板选择官方的JavaScript。

    右下角点击确定。

    小程序自动生成。

    左侧为手机预览效果图。中间为项目文件。右侧为控制台。

  2. 真机预览

    上方工具栏中点击预览后自动生成二维码,扫描后可在手机中预览。

2. 手动创建小程序

新建项目流程如上。

  1. 删除和修改文件

    • [删除] utils文件夹及其内部所有内容;

    • [删除] app.json 文件内 pages 属性中的 "pages/logs/logs",并[删除] pages 文件夹下的 logs 目录机器内部所有内容;

    • [删除] index.wxml 及 index.wxss 文件中全部的代码;

    • [删除] index.js 中的全部代码,并输入关键词 page 找到第五个选项,点回车补全函数。

    • [删除] app.wxss 文件中全部的代码;

    • [删除] app.js 中的全部代码,并输入关键词 app 找到第三个选项,点回车补全函数。

  2. 视图设计

    • 导航栏

      在 app.json 中对 windows 属性进行更改来改变导航栏效果。

      导航栏默认白底黑字。

    • 页面

      使用组件:头像 <image>、昵称<text>、按钮<button>

    修改 index.wxml 代码为:

    此处 src 与 name 为动态数据,放于 双层大括号 中。方便之后的逻辑实现。

    <view class="container">
      <image src='{
         
         {src}}' mode='widthFix'></image>
      <text>{
         
         {name}}</text>
      <button open-type="getUserInfo" bindtap="getMyInfo">
        点击获取头像和昵称
      </button>
    </view>

    修改 index.wxss 代码为:

    .container{
      height: 100vh;  /*高100视窗*/
      display: flex;  /*布局*/
      flex-direction: column;  /*垂直排列*/
      align-items: center;  /*水平居中*/
      justify-content: space-around;  /*垂直方向分散分布*/
    }

    新建 images 文件夹。右键此文件夹选择在 [资源管理器中显示]。

    将一张图片命名为 logo 存入此文件夹。

    在 image.wxss 中添加 <image>与<text>组件相关代码。

    image{
      width: 300rpx;  /*宽,手机屏幕默认为750rpx*/
      /*border-radius: 50%;  图片圆角半径*/
    }
    
    text{
      font-size: 50rpx;  /*字体大小*/
    }
    

  3. 逻辑实现

    • 在 index.js 文件里的 data 中追加 src 和 name 两个动态数据的值。

      在 Page 函数中追加 getMyInfo 函数使获取到的信息更新到动态数据上。

      Page({
        //页面的初始数据
        data: {
          src: '/images/logo.jpg',
          name: 'Hello World'
        },
      
        //自定义函数——获取微信用户信息
        onLoad(){
          if(wx.getUserProfile){
            this.setData({
              canIUseGetUserProfile: true
            })
          }
        },
          
        getMyInfo: function(e){
        // 推荐使用wx.getUserProfile获取用户信息
          wx.getUserProfile({
            desc: '展示用户信息', 
            success: (res) => {
              console.log(res)
              this.setData({
                src: res.userInfo.avatarUrl,
                name: res.userInfo.nickName
              })
            }
          })
        }
      })

      修改 app.js 代码为:

      App({
        onLaunch() {
          //展示本地存储能力
          const logs = wx.getStorageSync('logs') || []
          logs.unshift(Date.now())
          wx.setStorageSync('logs', logs)
      
          //登录
          wx.login({
            success: res => {
              // 发送 res.code 到后台换取 openId, sessionKey, unionId
            }
          })
        }
      })

遇到的问题与解决方法

自2021年4月起,getUserInfo 不再弹出弹窗,并直接返回匿名的用户个人信息。现在主要使用wx.getUserProfile 获取用户信息。

收获与体会

  • 熟悉微信开发者工具的使用;

  • 熟悉组件 <image>、<text>、<button> 的使用;

  • 小程序开发相对方便,在使用官方平台的情况下可使用一些现成的Api。

猜你喜欢

转载自blog.csdn.net/weixin_51079437/article/details/126390987
今日推荐