美文网首页小程序
小程序3——小程序的授权

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

作者: 虫yu | 来源:发表于2017-06-20 10:39 被阅读81次

    小程序的第一次授权发生在 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) {
      }
    })
    

    相关文章

      网友评论

        本文标题:小程序3——小程序的授权

        本文链接:https://www.haomeiwen.com/subject/tgjoqxtx.html