引言:
最近准备毕业设计,想做一个微信小程序,奈何只会一点html,css,连js都不会中间踩坑无数,现在还在坑中,云函数的创建具体参考相关文档、教程

1 目录结构

在这里插入图片描述

对四个文件进行了修改

2 文件修改内容

2.1 云函数login

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  return {
    // 获取用户ID
    openid: wxContext.OPENID
  }
}
  • 微信中,相关用户信息获取是有一定条件权限的,以下来自官网说明

在这里插入图片描述

2.2 my.wxml

<view wx:if="{{!openid}}">
<button class="into" open-type="getUserInfo" lang="zh_CN"
bindgetuserinfo="onGoUserInfo">登录</button>
</view>

<view  class="uploader-container" wx:if="{{openid}}"> 
  <image class="image" src="{{userinfo.avatarUrl}}"></image>
  <view class="name">{{userinfo.nickName}}</view>
</view>
  • 通过 用户id 判断显示情况

2.3 my.js

Page({

  /**
 * 页面的初始数据
   */
  data: {
    // 用户信息
    userinfo:{},
    // 用户ID
    openid:""
  },
  onGoUserInfo:function (e) {
    
    this.setData({
      // 返回事件中用户信息
      userinfo: e.detail.userInfo
    })
    console.log("userinfo", this.data.userinfo)

    // 云函数中 this 范围仅在云函数内 
    // 因此在外面赋值 常量 that 代入云函数
    const that = this
    // 使用云函数方法
    wx.cloud.callFunction({
      // 云函数名
      name:"login",
      // 云函数成功发出请求
      success:res=>{
        console.log("云函数调用成功")
        that.setData({
          // 返回云函数用户ID openid  res:自定义 代表云事件
          openid:res.result.openid,
          // 返回本地事件用户信息 userInfo e:自定义 代表本地事件
          userinfo:e.detail.userInfo
        })
        // 将openid 信息保存的 userinfo 内,这样后面保存到内存只需保存一个字典字段
        // data 是页面第一次渲染使用的初始数据。去掉会报错 暂时不是完全清楚概念
        that.data.userinfo.openid = that.data.openid
 
        console.log("openid",that.data.openid)
        console.log("userinfo",that.data.userinfo)
        // 将 userinfo 保存到内存,包含openid
        wx.setStorageSync('userinfo', that.data.userinfo)
      },
      // 云函数失败发出请求
      fail:res=>{
        console.log("云函数调用失败")
      }
    })
   
  },

  onLoad:function(options){
    // 获取缓存信息
    const ui = wx.getAccountInfoSync("userinfo")
    this.setData({
      userinfo:ui,
      openid:ui.openid
    })
  }
 
})

在这里插入图片描述

  • 将用户信息保存到缓存中,后续可以通过变量名,全局调用

2.4 my.wxss 参考

/* pages/my/my.wxss */
.image{
  width:100px;
  height: 100px;
  margin: 0 auto;
  display: block;
  padding-top: 20px;
}

.name{
  text-align: center;
  padding-top: 10px;
}

button{
  background: #ea5149;
  width: 60%;
  margin-top: 100px;
  color: #ffffff;
}

3 效果截图

3.1点击登录

在这里插入图片描述

3.2 显示用户名、头像

在这里插入图片描述
打个广告:https://curl.qcloud.com/n1MUDFl9
请添加图片描述


版权声明:本文为weixin_44593925原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44593925/article/details/108590619