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

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

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

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

//main.jsonLoad() {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('授权失败');}})}})}}
效果:弹出两次授权框

二.初始化云环境:

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

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 = nulllet 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].userinfoconsole.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.jsonClickButton() {//主动分享页面,调用getShareInfo云函数window['wx'].cloud.callFunction({name: 'getShareInfo',//调用云函数,下面步骤会写这个函数success(res) {console.log('主动分享成功',res);let _title = res.result.title.title //由数据表传过来的数据let _pic = res.result.picture.urlwindow['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.构建打包,点击分享按钮就可以成功!

cocos creator 部署微信云开发相关推荐

  1. 微信小游戏开发之Cocos Creator使用微信云开发和微信开放能力

    主题 Cocos Creator集成微信云开发和调用微信开放能力 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文档中有 ...

  2. Cocos Creator发布微信小游戏包内体积过大问题

    1.初识 设置微信开发工具和js编辑器 3.5.2 :Cocos Creator perferences 2.Cocos Creator发布微信小游戏包内体积过大问题 2.1 已不可取:搭建本机服务器 ...

  3. cocos creator接入微信登陆sdk android篇

    cocos creator接入微信登陆sdk 背景 项目引擎使用cocos creator,使用android studio集成开发工具,在开发之前先做好准备工作 在微信开放平台上创建好移动应用,拿到 ...

  4. uniapp 微信云开发静态网站和云函数跳转小程序

    uniapp 微信云开发静态网站和云函数跳转小程序 云开发静态网站的创建 云函数及copy-webpack-plugin 安装copy-webpack-plugin可能遇到的问题 静态网站和云函数的搭 ...

  5. 微信云开发-事件触发器的使用

    文章目录 一.在哪用 二.怎么用 三.问题 四.摸索 五.关于cms的webhook 六.我对触发器函数文件夹的架构想法 小结 微信开发文档对这个部分的使用资料很少,一个demo都没有,全靠开发者去尝 ...

  6. springboot 做表白墙_基于微信云开发 SayLove 表白墙微信小程序V1.0

    基于微信云开发 SayLove 表白墙微信小程序 后续会继续更新,敬请期待2.0全新版本~ 欢迎添加左边的微信一起探讨! 注意: 云函数的wx-server-sdk依赖需要更新才能正常使用,这里的都是 ...

  7. 微信云开发通过定时任务,对用户进行消息推送。

    微信云开发通过定时任务,对用户进行消息推送. 用到的API: wx.requestSubscribeMessage (调起客户端小程序订阅消息界面),文档地址. openapi.subscribeMe ...

  8. 【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏

    开始前,请先完成圆梦宝典中宫格导航的开发,详见 [微信小程序-原生开发]实用教程 07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字) https://blog.csdn.net ...

  9. 从0到1用微信云开发实现的电竞赛事盒子小程序

    Dota2云玩家赛事盒子 - Dota2比赛图文直播,比赛预告,比赛记录,TI.10年,Dota2视频集锦专题等,更多功能可扫描上方小程序码体验查看.欢迎大家扫码体验.交流学习~ 为什么选用小程序云开 ...

最新文章

  1. 高职学计算机专业排名,海南雅典职业技术学校官网
  2. python copy
  3. Form partner relationships early, even if informal
  4. iMazing六大主要功能介绍
  5. asp.net core 系列 10 配置configuration (上)
  6. C语言清屏函数和光标隐藏函数
  7. 贝叶斯网络模型基础——R语言
  8. 登录时记住密码的实现
  9. Vapnik-Chervonenkis Dimension 理解
  10. navicat本地同步到navicat cloud
  11. 高中知识三角函数怎么计算机,高中三角函数知识点归纳
  12. 乱序整数序列两数之和绝对值最小
  13. 美因基因冲刺港交所:黄金赛道的“双冠王”
  14. 路由器和交换机常见故障信息收集命令总结
  15. 微信小程序抽奖 简单功能实现
  16. Java项目:电器商城系统(java+SSM+JSP+jQuery+javascript+Mysql)
  17. Angular 基础
  18. 计算机显示找不到gpedit,Win7系统打开组策略提示找不到文件gpedit.msc怎么办
  19. Nodeparty-SZ-1 深圳聚会活动回顾总结[2012.01.08] - CNode
  20. python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条

热门文章

  1. DataGrip下载与安装2022版教程注册码DataGrip使用配置
  2. 如何让IE8默认启动InPrivate浏览模式
  3. python爬虫的学习心得分享
  4. [附源码]计算机毕业设计Python基于Web的绿色环保网站(程序+源码+LW文档)
  5. 启动django时报错Watching for file changes with StatReloade解决办法
  6. 编译实验1--词法分析
  7. 小微企业如何低成本搭建微官网
  8. 信息时代与大数据相关的8个专业
  9. 电信运营商网络运维方案
  10. postman连接数据库