小程序学习笔记

//判断用户授权

wx.getSetting({
    success : (res) => {
    if(res.authSetting['scope.userInfo']){
        wx.getUserInfo({
            success : (res) =>{
                this.onLoginSuccess({
                detail : res.userInfo
            })
        }
        })
    }else{
        this.setData({
        modalShow : true
        })
    }
    }
})

//设置授权按钮


    

//授权方法

  methods: {
    onGotUserInfo(event){
      console.log(event)
      const userInfo = event.detail.userInfo
      //允许授权
      if (userInfo){
        this.setData({
          modalShow:false
        })
        this.triggerEvent('loginSuccess', userInfo)
      }else{
        //授权失败
        this.triggerEvent('loginFail')
      }
    }
  }
})

onLoginSuccess(event){
    const detail = event.detail
    wx.navigateTo({
        url: `../blog-edit/blog-edit?nickName=${detail.nickName}&avatarUrl=${detail.avatarUrl}`,
    })
},

onLoginFail(){
    wx.showModal({
        title:'授权失败'
    })
},

//具名插槽

----------------------------------------------------------

微信小程序wx.login()、wx.getSetting、wx.getUserInfo的区别和联系

1、wx.login
前端使用wx.login是获取登录凭证(code),将code发送给后台,后台向微信发送请求获取用户的唯一标识(openid)及本次登录的会话密钥(session_key),然后后台传回前台自定义的登录状态,以及自定义的用户唯一标识

2、wx.geUserInfo
wx.getuserinfo是为了获取用户的相关信息

3、wx.getSetting
wx.getsetting是获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限

4、关系
所以三者之间的逻辑如下:
wx.login是用户进入app就要调用的
wx.getusrinfo是需要获取用户信息时调用的(当然如果你一开始就想要用户的信息也可以一开始就调用),且使用时需要配合wx.getsetting来使用:
使用wx.getsetting来判断用户是否已经授权你的小程序获取用户的信息,
如果已经授权的话,直接使用wx.getUserinfo来获取用户信息
如果没有授权,需要使用一个按钮来获取用户授权


你可能感兴趣的:(小程序学习笔记)