收藏
回答

有关getSetting获取授权登录及定位状态问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug getSetting() 客户端 Android 6.6.7 2.0.8

由于官方将openSetting() API去掉改用手动调用授权登录及授权定位,在首次登录时获取用户授权的状态时使用getSetting,在vivo与OPPO手机上测试时返回状态都为true,在其他手机可以(包括ios);如

  

wx.getSetting({

    success: (res)=>{

        console.log(res.authSetting['scope.userLocation']); // true

        console.log(res.authSetting['scope.userInfo']); // true

    }

})


获取用户当前授权状态时无法判断,求解。。

谢谢...

最后一次编辑于  2018-06-02
回答关注问题邀请回答
收藏

1 个回答

  • Straw
    Straw
    2018-06-02

    wx.getSetting({

    success: function (res) {

    if (res.authSetting['scope.userInfo']) {

    // 已经授权,可以直接调用 getUserInfo 获取头像昵称

    wx.getUserInfo({

    success: function (res) {

    app.globalData.userInfo = res.userInfo

    that.setData({

    empower: false,

    hasUserInfo: true

    })

    app.globalData.empower = that.data.empower;

    console.log(res.userInfo)

    }

    })

    } else {

    that.setData({

    empower: true //显示自己写的授权按钮

    })

    app.globalData.empower = that.data.empower;

    }

    }

    })

    可以通过判断userInfo是否有值

    2018-06-02
    赞同
    回复 6
    • 师乾源
      师乾源
      2018-06-02


      嗯嗯,我就是用您上面的方法处理的,我的意思是您用vivo手机或者oppo手机测试一下,原因我也说不清楚,其他手机好好的,在手机小程序中删除使用者的记录时,其他手机再次进入时如图(1);而vivo与oppo进入时如图(2)。


      我希望您能用手机测试一下,如有麻烦之处请见谅。谢谢。。。。





                                                                                              图一





                                                                                                  图二


      2018-06-02
      回复
    • Straw
      Straw
      2018-06-02

      没有这两款手机,你的意思是删除小程序后再进入,这两款手机还保存有授权信息,其他没有?你在getSetting()打印一下fail,不要光是success

      2018-06-02
      回复
    • 师乾源
      师乾源
      2018-06-02

      嗯嗯,是。这两款手机还保留授权信息。


      不走fail数据,走success和complete,且数据一样。(手机本身会调取到,fail数据不会去触发)

      2018-06-02
      回复
    • Straw
      Straw
      2018-06-02

      你这种情况很像我当初遇到的,因为wx.getUserInfo这个接口要废弃了,所以需要通过button来引导授权,autoSetting:{}是空对象的原因可能就是没授权,你这样判断看看

      if (res.authSetting[ 'scope.userInfo' ] || res.authSetting[ 'scope.userLocation ]) {

      }

      else{ ‘没有授权’}

      2018-06-02
      回复
    • Straw
      Straw
      2018-06-02回复Straw

      不是废弃,搞错了

      2018-06-02
      回复
    查看更多(1)