cocos creator 部署微信云开发
(这仅为小弟的学习笔记,不作为教程,如有错误请大佬指出)
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 部署微信云开发相关推荐
- 微信小游戏开发之Cocos Creator使用微信云开发和微信开放能力
主题 Cocos Creator集成微信云开发和调用微信开放能力 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文档中有 ...
- Cocos Creator发布微信小游戏包内体积过大问题
1.初识 设置微信开发工具和js编辑器 3.5.2 :Cocos Creator perferences 2.Cocos Creator发布微信小游戏包内体积过大问题 2.1 已不可取:搭建本机服务器 ...
- cocos creator接入微信登陆sdk android篇
cocos creator接入微信登陆sdk 背景 项目引擎使用cocos creator,使用android studio集成开发工具,在开发之前先做好准备工作 在微信开放平台上创建好移动应用,拿到 ...
- uniapp 微信云开发静态网站和云函数跳转小程序
uniapp 微信云开发静态网站和云函数跳转小程序 云开发静态网站的创建 云函数及copy-webpack-plugin 安装copy-webpack-plugin可能遇到的问题 静态网站和云函数的搭 ...
- 微信云开发-事件触发器的使用
文章目录 一.在哪用 二.怎么用 三.问题 四.摸索 五.关于cms的webhook 六.我对触发器函数文件夹的架构想法 小结 微信开发文档对这个部分的使用资料很少,一个demo都没有,全靠开发者去尝 ...
- springboot 做表白墙_基于微信云开发 SayLove 表白墙微信小程序V1.0
基于微信云开发 SayLove 表白墙微信小程序 后续会继续更新,敬请期待2.0全新版本~ 欢迎添加左边的微信一起探讨! 注意: 云函数的wx-server-sdk依赖需要更新才能正常使用,这里的都是 ...
- 微信云开发通过定时任务,对用户进行消息推送。
微信云开发通过定时任务,对用户进行消息推送. 用到的API: wx.requestSubscribeMessage (调起客户端小程序订阅消息界面),文档地址. openapi.subscribeMe ...
- 【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏
开始前,请先完成圆梦宝典中宫格导航的开发,详见 [微信小程序-原生开发]实用教程 07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字) https://blog.csdn.net ...
- 从0到1用微信云开发实现的电竞赛事盒子小程序
Dota2云玩家赛事盒子 - Dota2比赛图文直播,比赛预告,比赛记录,TI.10年,Dota2视频集锦专题等,更多功能可扫描上方小程序码体验查看.欢迎大家扫码体验.交流学习~ 为什么选用小程序云开 ...
最新文章
- 高职学计算机专业排名,海南雅典职业技术学校官网
- python copy
- Form partner relationships early, even if informal
- iMazing六大主要功能介绍
- asp.net core 系列 10 配置configuration (上)
- C语言清屏函数和光标隐藏函数
- 贝叶斯网络模型基础——R语言
- 登录时记住密码的实现
- Vapnik-Chervonenkis Dimension 理解
- navicat本地同步到navicat cloud
- 高中知识三角函数怎么计算机,高中三角函数知识点归纳
- 乱序整数序列两数之和绝对值最小
- 美因基因冲刺港交所:黄金赛道的“双冠王”
- 路由器和交换机常见故障信息收集命令总结
- 微信小程序抽奖 简单功能实现
- Java项目:电器商城系统(java+SSM+JSP+jQuery+javascript+Mysql)
- Angular 基础
- 计算机显示找不到gpedit,Win7系统打开组策略提示找不到文件gpedit.msc怎么办
- Nodeparty-SZ-1 深圳聚会活动回顾总结[2012.01.08] - CNode
- python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条