1.我们用云开发模板创建小程序项目时,在该目录下有login云函数,我们可以利用它实现获取openid,右键上传并部署,云端安装依赖后
2.打开app.js,在onLaunch: function(){}内填入以下代码调用login云函数获取openid
这样可以实现打开小程序时获取用户openid
//app.js
App({
getOpenId: null,
onLaunch: function () {
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
this.getOpenId = (function(that){
return new Promise((resolve, reject) =>{
wx.cloud.callFunction({
name: 'login',
data: {},
success: res => {
that.globalData.openid = res.result.openid
resolve(res.result.openid)
},
fail: err => {
console.error('[云函数] [login] 调用失败', err)
}
})
})
})(this)
}
}
})
3.在想要调用的页面使用getOpenId即可获取
const app = getApp(); app.getOpenId.then(res => { console.log(res, 'then-res') })
4.这种方法可以有效避免因为异步而拿不到openid的情况