云开发操作
使用小程序云开发,可从此处进入:
打开微信开发者工具,看下图位置:
然后会出现云开发界面,可以看到这样的界面(截了一半):
点击云函数,可以看到小程序内新增的云函数:
获取openId
先看看wxml部分代码:
<image src="{{userInfo.avatarUrl}}"></image>
<view wx:if="{{userInfo.openid}}">
{{userInfo.nickName}}
</view>
<button wx:else open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">登录</button>
是一个简单的点击登录部分。
需要在外层app.js文件内进行初始化配置:
App({
onLaunch: function () {
// 运行云函数需要配置一下
wx.cloud.init();
}
})
下面是开发云函数部分:
选中的位置是云函数的后端添加的位置:
backend是我后期新增的作为云函数存放位置的文件夹,在backend下新建了login文件夹,用于存放云函数。
具体在新增项目的时候,选择云开发会出现这个文件夹。
下面是代码(上图的):
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
在需要获取到openId的页面内的js文件内(当然与上面的wxml文件是一个页面):
onGetUserInfo(e){
console.log('onGetUserInfo',e);
// ...
wx.cloud.callFunction({ //调用云函数
name: 'login',
data:{},
success: res => {
console.log('res',res);
console.log('login res.result.openid',res.result.openid);
//获取到openId后进行其他操作
// 持久化存储openId
wx.setStorageSync('_openid',res.result.openid);
},
fail: err => {
console.error('err',err);
wx.navigateTo({
url: '../deployFunctions/deployFunctions'
})
}
})
// ...
}
上述代码内有对openId数据的持久化:
// 持久化存储openId
wx.setStorageSync('_openid',res.result.openid);