IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 毕设小记--微信小程序,使用getUserProfile授权登录,并且将用户信息保存到云开发 -> 正文阅读

[移动开发]毕设小记--微信小程序,使用getUserProfile授权登录,并且将用户信息保存到云开发

现在微信小程序要授权登录获取用户信息要使用getUserProfile,如果使用getUserInfo只能获取到匿名用户。

getUserProfile官方文档使用说明:

/* wx.getUserProfile (Object object)基础库 2.10.4 开始支持
 获取用户信息。页面产生点击事件(例如 button 上 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo。该接口用于替换 wx.getUserInfo */

onLoad() {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
    // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res) => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },




我将开发文档里对getUserProfile()的使用部分放上来了,如果想了解详细请移步开发文档

wx.getUserProfile(Object object) | 微信开放文档

下面我将在我程序里使用到的代码记录,因为是新手,对云开发和JS代码还是不太熟悉,可能错误,如果有大佬看到,麻烦给我留言

数据库的设置

首先要在数据库中创建一个存放用户信息的文件夹

点击云开发->数据库

?

js代码


const app = getApp();
//获取数据库实例
const db = wx.cloud.database()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo:'',
   
  },
   /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
   
  },
  
/**
   * 自定义函数--授权登录
   */
  login() {
    var that = this;
    wx.getUserProfile({
      desc: '必须授权才能使用上',
      success: res => {
        that.setData({
          userInfo: res.userInfo
        })
        //查看获取到的用户信息
      // console.log(this.data.userInfo)   
      db.collection('user').where({
        //在user中查看是否已保存用户信息,根据用户名称
        nickName: that.data.userInfo.nickName
      })
      .get({
        success: res=>{
           //判断data是否为空
          if(res.data.length == 0){
            var userInfo = that.data.userInfo
            //将用户信息保存到数据库的user中
            db.collection('user').add({
              data:{
                nickName: userInfo.nickName,
                avatarUrl: userInfo.avatarUrl,
                //保存时的时间
                time: that.js_date_time(new Date()),
              },
              success: res =>{
                console.log('用户信息已保存到数据库',res)
              },
              fail: err => {
                console.log('用户信息保存失败', err)
              }
              
            })
          } else{
            console.log("已记录过!!")
          }
        }
      })
      },

    })
  },
 

代码内容说明补充:

代码中先用户授权登录,然后再检查数据库中是否保存了用户信息使用到数据库的查询语句,(在做的时候发现获得_openId查询信息,来对用户进行核实,好像会更严谨,但我用了报错,目前还没有找出原因)

Collection.where(condition: Object):?Collection

指定查询条件,返回带新查询条件的新的集合引用

db.collection('books').where({
  publishInfo: {
    country: 'United States'
  }
}).get({
  success: function(res) {
  // 输出 [{ "title": "The Catcher in the Rye", ... }]
  console.log(res)
 }
})

?再使用Collection.add(options: Object)添加用户信息,

其实好像还涉及到云函数的使用,但我对云函数的使用还不太了解,等我搞清楚了,我再将步骤补齐

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:45:19  更:2021-10-16 19:46:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:36:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码