cocos creator 部署微信云开发

cocos creator 部署微信云开发cocoscreator部署微信云开发

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

(这仅为小弟的学习笔记,不作为教程,如有错误请大佬指出)

cocos creator中通过调用微信的接口去获取用户授权的信息,之后云函数把用户数据保存至云数据库,再从数据库回调到cocos端处理。比如把用户头像和名称通过远程加载到cocos小游戏中使用。

在这里插入图片描述

一.登录游戏,授权用户信息:

在微信开发者中进入游戏,用户点击任意位置的时候,获取用户的授权信息。

//main.js
 onLoad() { 
   
    this.authorizationBox()
  }
  //微信授权按钮的创建,点击屏幕任意位置弹出授权框
  authorizationBox() { 
   
    if (sys.Platform.WECHAT_GAME) { 
   //如果是微信平台
      window['wx'].login({ 
   //登录游戏
        success: function (res) { 
   
          if (res.code) { 
   
            console.log('登陆成功');
          }
          //创建一个全屏的授权按钮
          let button = window['wx'].createUserInfoButton({ 
   //创建一个获取用户信息的按钮
            type: 'text',
            text: '',
            style: { 
   
              height: window['wx'].getSystemInfoSync().screenHeight,//获取屏幕的宽高
              width: window['wx'].getSystemInfoSync().screenWidth,
              backgroundColor: '#00000000',//最后两位为透明度
              color: '#ffffff',
              textAlign: 'center',
            }
          })
          button.show()    //把按钮显示出来
          button.onTap((res) => { 
             //监听按钮的点击
            if (res.errMsg === 'getUserInfo:ok') { 
   
              console.log('授权成功');
              button.destroy()
            } else { 
   
              console.log('授权失败');
            }
          })
        }
      })
    }
  }

Jetbrains全家桶1年46,售后保障稳定

效果:弹出两次授权框

在这里插入图片描述

二.初始化云环境:

把刚刚授权好的用户信息通过微信云函数保存到微信云数据库中。所以这里需要一个数据库和一个云函数。

1.初始化“cloud”云环境

在这里插入图片描述

2.创建一个微信云数据库“data”

在这里插入图片描述

3.创建“login”云函数在这里插入图片描述
4.编写”login”云函数的index.js

在这里插入图片描述

//login云函数的index.js脚本
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()
const db = cloud.database()//引用云数据库
const userinfo = db.collection("data")//引用data数据表(刚创建的那个数据表名称)

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

  //查询数据库是否已经注册
  let isHas =await userinfo.where({ 
   
    openid:wxContext.OPENID
  }).get()

  //如果没有注册
  if(isHas.data.length==0){ 
   
    let isAdd = null
    let addData = { 
   
      openid:wxContext.OPENID,
      userinfo:event.userinfo,
      due:new Date()
    }
    //把获取的数据添加到数据库
    isAdd = userinfo.add({ 
   
      data:addData,
    })
    return{ 
   
      code:'save',
      res:isAdd,
      data:addData
    }
  }
else{ 
   
  //已经注册
  return{ 
   
    code:'get',
    res:isHas.data
  }
}
  
}
5.上传部署

在这里插入图片描述
上传部署成功在这里插入图片描述

三.处理用户授权信息:

在cocos中创建一个变量存储云函数回调的用户信息,再创建一个全局函数调用云函数。

1.创建全局变量,用于保存从云端回调的用户信息
//GlobaData.js
export { 
    }
window['Globa'] = { 
   
  userInfo: null
}
2.创建全局云函数调用login
//GlobalWechat.js
export { 
    }
//调用云函数处理注册信息
window['onReisterUser'] = function (_userInfo) { 
   
  window['wx'].cloud.callFunction({ 
   
    name: "login",//云函数名字
    data: { 
   
      userinfo: _userInfo,
    },
    success(res) { 
   
      console.log('处理注册信息成功', res);
     window['Globa'].userInfo = res.result.res[0].userinfo
      console.log('获取到回调的用户信息:', window['Globa'].userInfo);
    },
    fail: console.error()
  })

}

3.在main.js授权脚本调用全局函数,对用户授权的注册信息进行处理

在这里插入图片描述

4.打包发布,在微信云开发上运行,并设置云环境(每一次构建打包都需要重新设置云环境)

在这里插入图片描述

5.上传用户数据成功,这样子在cocos中就可以获取到用户数据了,也能把用户数据存到云数据库中。

在这里插入图片描述

四.分享转发

分享有两种,一种是主动分享(wx.shareAppMessage),l另一种是右上角的被动分享(wx.showShareMenu)。

这里主动分享我用微信云来存储要分享的信息,而被动分享的话把分享信息直接存在本地,存在本地比存在微信云方便,就是想练练手。

被动分享


 //share.js,被动分享(右上角分享按钮)
  passiveShare() { 
   
    if (sys.Platform.WECHAT_GAME) { 
   
      //显示当前页面转发按钮
      window['wx'].showShareMenu({ 
   
        success: (result) => { 
   
          console.log('开启被动转发成功');
        },
        fail: (res) => { 
   
          console.log('开启被动转发失败', res);
        },
      });
      //分享
      window['wx'].onShareAppMessage(() => { 
   
        let title = [//分享时候显示的标题
          '来锻炼一下左右脑协调能力吧!跟着我左脑右脑一个慢动作!',
          '你是左脑快还是右脑快呢,快来试试看把!',
          '冰墩墩邀请你一起玩钢架雪车!',
          '听说你也想拥有一个冰墩墩!',
        ]
        let rand = Math.floor(Math.random() * 4)
        return { 
   
          title: title[rand],
          imageUrl: '', //分享时候显示的图片,如果没有图片就是默认的Canvas,这里我没有添加图片
          query: '成功分享游戏'
        }
      })
    }
  }

主动分享

1.上传分享需要需要用到的图片到云存储中,这里上传两张。

图一:
在这里插入图片描述
图二:
在这里插入图片描述

2.在数据库创建两个集合保存需要分享的标题和图片

集合一:保存分享标题
在这里插入图片描述
集合二:保存分享图片

在这里插入图片描述

3.在cocos中创建一个按钮,并且调用onClickButton函数

在这里插入图片描述

//share.js
 onClickButton() { 
   
   //主动分享页面,调用getShareInfo云函数
   window['wx'].cloud.callFunction({ 
   
     name: 'getShareInfo',//调用云函数,下面步骤会写这个函数
     success(res) { 
   
       console.log('主动分享成功',res);
       let _title = res.result.title.title //由数据表传过来的数据
       let _pic = res.result.picture.url
       window['wx'].shareAppMessage({ 
   
         title: _title,
         imageUrl: _pic,
       })
     },
     fail: console.error
   })

 }
4.在微信写getShareInfo云函数,然后上传部署。
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

//链接数据库
let db = cloud.database()
let _pic = db.collection('share_pic')
let _title = db.collection('share_title')

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

  //获取数据表数据
let promise_pic = await _pic.get()
let promise_title = await _title.get()

  //把数据随机返回给调用者
return({ 
   
  title:promise_title.data[Math.floor(Math.random()*promise_title.data.length)],
  picture:promise_pic.data[Math.floor(Math.random()*promise_pic.data.length)],
  errMsg:promise_title.errMsg,
})
}
5.构建打包,点击分享按钮就可以成功!

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213615.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux必学的60个命令解释_linux常用命令及用法

    linux必学的60个命令解释_linux常用命令及用法Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。◆安装和登录命令:login、shutdown、hal

    2022年9月16日
  • macbook双系统文件共享_华为双系统短信共享吗

    macbook双系统文件共享_华为双系统短信共享吗MacBook安装双系统多分区共享访问解决方案1.   需求在MacBook中安装Win7,mac双系统。磁盘分区为4个(A,B,C,D),其中A(300G),B(400G)存放个人和系统无关的东西并实现两个系统都能访问A、B;C(150G)安装Win764位系统;D(150G)安装MacOS系统。双系统之间互不影响,也就是说如果Win7

    2022年10月5日
  • object中提供的clone默认为浅克隆_接口的定义形式

    object中提供的clone默认为浅克隆_接口的定义形式cloneable接口的作用cloneable其实就是一个标记接口,只有实现这个接口后,然后在类中重写Object中的clone方法,然后通过类调用clone方法才能克隆成功,如果不实现这个接口,则会抛出CloneNotSupportedException(克隆不被支持)异常。Object中clone方法:这里有一个疑问,Object中的clone方法是一个空的方法,那么他是如何判断类…

    2022年10月15日
  • 使用Gson将Object转String出现\u003d 的原因「建议收藏」

    使用Gson将Object转String出现\u003d 的原因「建议收藏」在使用Gson将Object转json字符串,或者将实体类例如:User转为json的过程中,最终的结果会在值中出现\u003d出现这个的原因是Gsongson=newGson()造成的这个时候需要使用Gsongson=newGsonBuilder().disableHtmlEscaping().create();实例化一个gsongson.toJson(…

    2022年5月29日
  • Jmeter安装及配置教程

    Jmeter安装及配置教程Jmeter安装及配置教程一、JMeter的安装配置过程二、JMeter的运行和语言设置一、JMeter的安装配置过程安装配置过程:第一步安装JDK,配置JDK路径到Oracle官方网站下载最新版本的jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html这里使用的操作系统是Windows,选最后一个下载,下载完直接运行安装。安装完设置一下环境参数。JAVA_HOME:D:\

    2022年5月3日
  • pycharm如何设置官方中文?pycharm如何汉化?pycharm终于支持官中了!!![通俗易懂]

    pycharm如何设置官方中文?pycharm如何汉化?pycharm终于支持官中了!!![通俗易懂]文章目录汉化方法官方汉化与第三方对比Java的idea在更新2020.1时就更新了官方汉化,当时Pycharm还没用出现汉化,但这两天提示我更新2020.1.1的时候,我发现pycharm也出现了官方汉化,在此建议你要是想用官方汉化,先把你的pycharm升级为最新版本。汉化方法打开pycharm左上角的file(文件)>选择settings(设置)>打开plugins(插件)>搜索chinese(中文插件),下载好后重启pycharm。官方汉化与第三方对比这里使用

    2022年5月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号