前言

开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。

云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

云开发提供了几大基础能力支持:

能力

作用 &说明

云函数

无需自建服务器 在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码

数据库

无需自建数据库 一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库

存储

无需自建存储和 CDN 在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理

云调用

原生微信服务集成 基于云函数免鉴权使用小程序开放接口的能力,包括服务端调用、获取开放数据等能力

实现效果图

微信小程序操作 云端mysql 微信小程序云数据库openid_微信小程序操作 云端mysql


如果想观察具体效果,你可以微信搜索陌然 Tool或者保存小程序二维码去微信扫一扫,本小程序提供了丰富的案例可供零基础开发者学习借鉴。

代码

详细的内容在代码中有注释,希望对你有所帮助

// pages/cloud/GetOpenID/index.js
const app = getApp()
Page({


  data: {
    userInfo: null,
    openID: '',
    detail: '点击头像显示你的详细信息',
    showDetail: false
  },


  onLoad: function(options) {
    this.setData({
      userInfo: app.globalData.userInfo // 从App全局变量获得用户信息
    })
    this.GetOpenID()
  },
  // 定义获取用户OpenID的函数
  GetOpenID: function() {
    var that = this;
    wx.showLoading({ // 显示加载提示框
      title: '获取openID。。。',
    })
    wx.cloud.callFunction({ // 调用云函数
      name: 'login', // 函数名称
      data: {}, // 函数参数
      complete: res => { // 调用完成时的回调函数
        wx.hideLoading() // 隐藏加载提示框
      },
      success: res => { // 调用成功时的回调函数
        console.log('[云函数] [login] user openid: ', res.result.openid)
        that.setData({ // 设置页面绑定数据
          openID: '[云函数]获取openID成功:' + res.result.openid,
          showDetail: true
        })
        wx.setStorageSync("openID", res.result.openid) // 同步存储用户的OpenID到本地
      },
      fail: err => { // 调用失败时的回调函数
        console.error('[云函数] [login] 调用失败', err)
        that.setData({ // 设置页面绑定数据
          openID: '[云函数]获取openID失败' + err
        })
      }
    })
  },
  // 定义获取用户详细信息的函数
  GetDetail: function() {
    var userInf = this.data.userInfo;
    var gender = (userInf.gender == 1) ? "男" : (userInf.gender == 2) ? "女" : "未知";
    var detailStr = "性别:" + gender;
    detailStr = detailStr + "\n国家:" + userInf.country;
    detailStr = detailStr + "\n省份:" + userInf.province;
    detailStr = detailStr + "\n城市:" + userInf.city;
    this.setData({ // 设置页面绑定数据
      detail: detailStr
    })
  },
  onShareAppMessage: function() {

  }
})
<!--pages/cloud/GetOpenID/index.wxml-->
<view class='box'>
  <view class='title'>获取OpenID</view>
  <view class='userinfo'>
      <image bindtap='GetDetail' class='userinfo-avatar' src='{{userInfo.avatarUrl}}' mode='cover'></image>
      <text class='userinfo-nickname'>{{userInfo.nickName}}</text>
  </view>
  <view class='user-openid'>
    <text>{{openID}}</text>
  </view>
  <view class='user-detail' wx:if='{{showDetail}}'>  
    <text>{{detail}}</text>
  </view>
</view>
/* pages/cloud/GetOpenID/index.wxss */
page{
  font-size: 14px;
}
.userinfo {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.userinfo-avatar {
  width: 128rpx;
  height: 128rpx;
  margin: 20rpx;
  border-radius: 50%;
}

.userinfo-nickname {
  color: #aaa;
}

.user-openid {
  margin: 60rpx 30rpx;
  color:#0066ff;
}

.user-detail{
  margin: 60rpx 30rpx;
  text-align: left;
  color: black
}