微信云开发提供了数据库和云函数的功能,利用这两个功能,我们可以自主实现一个排行榜功能。
整个流程
先获得用户的基本信息(头像,昵称)等,这些数据可能会用在排行榜里展示。获取成功后,进入主界面。完成游戏上传分数。打开排行榜界面获取排行榜数据。所有总共涉及三个接口:1.用户信息;2.上传分数;3.获取排行榜数据。流程图参考如下:
用户信息
首先要判断该应用是否有被授权。已经授权,可以直接调用wx.getUserInfo获取头像昵称。未授权的要调用wx.createUserInfoButton
创建按钮引导玩家点击。
wx.createUserInfoButton
创建的按钮的位置可以通过wx.getSystemInfoSync
里的safeArea
调整。例如,需要在安全区域内最中间放放置高度height
为50
的按钮,可以将button的left
设置为safeArea.left
,width
为safeArea.width
,top
为(safeArea.top - safeArea.height/2 - 25)
。
完整代码参考:
// 查看是否授权
wx.getSetting({
success(res) {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称
wx.getUserInfo({
success: function (res) {
const userInfo = res.userInfo;
//保存数据,进入游戏主界面
}
})
} else {
// 未授权的要调用 createUserInfoButton 创建按钮引导玩家点击
const systemInfo = wx.getSystemInfoSync();
const safeArea = systemInfo.safeArea;
const button = wx.createUserInfoButton({
type: 'text',
text: '授权登录',
style: {
left: safeArea.left,
top: (