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的情况