微信小程序授权实现(三)优化使用

问题: 由于检测用户状态需要一定的时间。在检测完之前不能进行后续操作

通杀版本只需要在调用时传入相应授权码即可实现小程序授权通杀

解决: 使用回调函数处理

界面:https://blog.csdn.net/aaron9185/article/details/84101455

代码实现

一、在app.js中插入检测授权状态方法  在回调时返回

 //判断是否授权 传入授权名称  授权代码 和回掉函数
  isAuth: function(stateName, stateKey, callback) {
    var that = this

    wx.getSetting({
      success(res) {
        // console.log(stateName)
        // console.log(stateKey)
        // console.log(res)
        if (!res.authSetting[stateKey]) {
          // console.log('我是授权未成功')
          callback('授权失败', stateName, stateKey)
        } else {
          // console.log("我是已经授权成功")
          callback('授权成功', stateName, stateKey)
        }
      }
    })
  },

二、授权页面  在授权页面 调用app.js检测时间   并传入回调函数     回调函数中授权成功失败分别执行不同操作

   //获取地理位置
    app.isAuth("地理位置", "scope.userLocation", function(err, name, key) {
      if (err == '授权成功') {
        console.log(name + '授权成功')
        //经纬度
        wx.getLocation({
          type: 'wgs84',
          success: function(res) {
            console.log(res)
            var latitude = res.latitude
            var longitude = res.longitude
            that.setData({
              wd: latitude, //维度
              jd: longitude, //精度
            })

            if (that.data.time == 0) {
              //加载图片
              that.loadImages()
              that.setData({
                time: 1
              })
            }

          }
        })
      } else {
        console.log(name + '授权失败')
        var tempData = name + 'and' + key
        wx.navigateTo({
          url: '../system/authorize/authorize?tempData=' + tempData
        })
      }
    })

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值