小程序3——小程序的授权

小程序的第一次授权发生在 app.js 的 onLaunch 方法 中

App({
  onLaunch: function () {
    //调用API从本地缓存中获取数据
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)
  },
  getUserInfo: function (cb) {
    var that = this
    if (this.globalData.userInfo) {
      typeof cb == "function" && cb(this.globalData.userInfo)
    } else {
      //调用登录接口
      wx.login({
        success: function (loginCode) {
          // 这里会跳出弹框,获取用户信息
          wx.getUserInfo({
            success: function (res) {// 第一次允许授权
              that.globalData.userInfo = res.userInfo // 获取用户信息,赋给全局变量
              typeof cb == "function" && cb(that.globalData.userInfo)
            },
            fail: function (res) {// 第一次拒绝授权
            }
          })
        }
      })
    }
  },
  globalData: {
    userInfo: null
  }
})

如果拒绝授权,就获取不到userInfo,但是之后有需要使用userInfo中的信息,这时候就需要 wx.openSetting() 再次唤醒用户授权

wx.openSetting({// 调起用户设置
  success: function (res) {
    res.authSetting = {
      "scope.userInfo": true,
      "scope.userLocation": true
    }
    if (res.authSetting["scope.userInfo"]) {// 第二次同意授权
      wx.getUserInfo({
        success: function (res) {
          // 保存用户信息
          that.globalData.userInfo = res.userInfo
        }
      })
    } else {// 第二次拒绝授权
      // 进行处理
    }
  },
  fail: function (res) {
  }
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给提问的开发者的建议:提问之前先查询 文档、通过社区右上角搜索搜索已经存在的问题。 写一个简明扼要的标题,并且...
    极乐叔阅读 13,808评论 0 3
  • 背景小程序一个比较重要的能力就是获取用户信息,也就是使用 wx.getUserInfo接口。我们发现几乎所有的小程...
    未央大佬阅读 15,544评论 0 23
  • 转载请注明出处, 谢谢! (~ o ~)Y 1月9日,也就是今天,微信推出的“小程序”正式上线。“小程序”是一种无...
    Jimmy_P阅读 14,449评论 52 273
  • 我爱你 像一缕烟 不疾不徐 一路舒缓。 我爱你 如一粒土 自甘深埋地下 无需他人断言。 我爱你 当然你明白 不说未...
    风佳恩阅读 142评论 0 2
  • 骨骼的发育决定外貌。若饮食中缺乏形成骨骼所需的营养,年龄愈大,各种异常的发育就愈明显。例如脸型狭窄、紧缩、拉长;前...
    倩颖668阅读 410评论 0 0