收藏
回答

怎么微信授权点击了“允许”后,然后再执行下一个方法?

// pages/load/load.js

Page({

  data: {

    userInfo: {},

    hasUserInfo: false,

    canIUseGetUserProfile: false,

  },


next:function(e){

console.log("userInfo",getApp().globalData.userInfo)

wx.redirectTo({

  url: '/pages/login/login',

})

},


  onLoad() {

    var _this=this;

    // //加载等待

    // wx.showLoading({

    //   title: '加载中',

    // })

    wx.login({

      success (res) {

        if (res.code) {

          //发起网络请求

          // wx.request({

          //   url: 'https://example.com/onLogin',

          //   data: {

          //     code: res.code

          //   }

          // })

          

          //授权

          if (wx.getUserProfile) {

            _this.setData({

              canIUseGetUserProfile: true

            })

            //获取返回对象

        getApp().globalData.userInfo=_this.userInfo;

            //_this.next();

          }

        } else {

          console.log('登录失败!' + res.errMsg)

        }

      }

    })


  //  //延时消失

  //   setTimeout(function(){

  //     wx.hideLoading()

  //   },2000)


  },

  getUserProfile(e) {

    

    // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认

    // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗

    wx.getUserProfile({

      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写

      success: (res) => {

        console.log(res.userInfo),

        this.setData({

          userInfo: res.userInfo,

          hasUserInfo: true

        })

      }

    })

  },

  getUserInfo(e) {

    // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息

    this.setData({

      userInfo: e.detail.userInfo,

      hasUserInfo: true

    })

  },

  

  /**

   * 生命周期函数--监听页面初次渲染完成

   */

  onReady: function () {


  },


  /**

   * 生命周期函数--监听页面显示

   */

  onShow: function () {


  },


  /**

   * 生命周期函数--监听页面隐藏

   */

  onHide: function () {


  },


  /**

   * 生命周期函数--监听页面卸载

   */

  onUnload: function () {


  },


  /**

   * 页面相关事件处理函数--监听用户下拉动作

   */

  onPullDownRefresh: function () {


  },


  /**

   * 页面上拉触底事件的处理函数

   */

  onReachBottom: function () {


  },


  /**

   * 用户点击右上角分享

   */

  onShareAppMessage: function () {


  }

})

回答关注问题邀请回答
收藏

2 个回答

  • Code Weaver
    Code Weaver
    2021-11-17
    <button bindtap="handleClick">授权</button>
    
      handleClick() {
        wx.getUserProfile({
          desc: '用于完善会员资料',
          success: (res) => { // 这里就是点击了允许才拿到的信息。所以this.next方法放这里面
            console.log(res.userInfo),
            this.setData({
              userInfo: res.userInfo,
              hasUserInfo: true
            })
            this.next() 
          }
        })
      },
    next(e){
      console.log("userInfo",getApp().globalData.userInfo)
      wx.redirectTo({
        url: '/pages/login/login',
      })
    },
    
    
    
    
    2021-11-17
    有用 1
    回复 1
    • kevin
      kevin
      2021-11-18
      请问怎么获取手机号,并且怎么调用全局接口验证手机号登陆呢
      2021-11-18
      回复
  • Smooth
    Smooth
    2021-11-17

    将下一个方法写在点击允许后的回调函数里

    2021-11-17
    有用 1
    回复
登录 后发表内容