微信小程序云开发获取openid的正确打开方式

由于之前自学的时候,这部分获取openid的代码设计不合理,经过学习优化,这里来给出一种正确的打开方式,代码如下:

app.js:

App({
  globalData: {
    openid: null,
  },
  onLaunch() {
    wx.cloud.init({
      env: 'xxxxxxxxx', //这里替换成自己的云开发环境id
      traceUser: true,
    })
    this.getOpenid()
  },
 // 获取用户openid
 getOpenid: function () {
    var app = this;
    var openidStor = wx.getStorageSync('openid');
    if (openidStor) {
      console.log('本地获取openid成功:', openidStor);
      app.globalData.openid = openidStor;
    } else {
      wx.cloud.callFunction({
        name: 'getOpenid',
        success(res) {
          console.log('云函数获取openid成功:', res.result)
          var openid = res.result.openid;
          wx.setStorageSync('openid', openid)
          app.globalData.openid = openid;
        },
        fail(res) {
          console.log('云函数获取失败', res)
        }
      })
    }
  },
})

这段代码比较短,能看懂的兄弟们直接拿走就好,有些疑惑的话,那么我来解释一下,这段代码的实现逻辑:先在本地缓存里获取openid,若本地缓存里没有openid,那么就调用getOpenid的云函数来获取openid。

注意点:

1. 需要把云开发的环境id换成自己的即把env: 'xxxxxxxxx', 这段代码修改一下

2.var app = this;,是为了确保在接下来的回调函数里还是可以调用到原来的上下文

3.var openidStor = wx.getStorageSync('openid');这段代码是从缓存里获取到openid,拿到他的前提是 wx.setStorageSync('openid', openid),通过云函数已经把openid获取过并且保存到了缓存里

4.  app.globalData.openid = openid;把openid存入全局对象,方便在其他页面里直接调用

5.如果有不会写getOpenid的伙伴,可以找找我的前几篇文章

解释完毕,希望这些内容能对你有所帮助。如果你也觉得这个内容有用的话,可以留下点赞和收藏呦,方便下次查阅浏览。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

起飞001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值