zoukankan      html  css  js  c++  java
  • 微信小程序之wx.getUserInfo不会自动唤起授权界面解决方案

           为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败。会直接进入 fail 回调,在用户已授权的情况下调用此接口,可成功获取用户信息。

    开发者可使用以下方式获取或展示用户信息:

    1,请使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作。

    • 新建login模板文件,在login.wxml添加如下代码:
    <button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button>
    • 在login.js文件中添加bindGetUserInfo点击事件:
    bindGetUserInfo: function(e){
        //此处授权得到userInfo
        console.log(e.detail.userInfo);
        //接下来写业务代码
        app.globalData.userInfo = e.detail.userInfo;
        //最后,记得返回刚才的页面
        wx.navigateBack({
           delta: 1
        })
       }

    2,调用接口函数wx.getUserInfo时:

    1)当用户未授权过,调用该接口将直接报错,会直接进入 fail 回调
    2)当用户授权过,可以使用该接口获取用户信息

    wx.getUserInfo({
          withCredentials: true,
          success: function (res) {
            //此处为获取微信信息后的业务方法,存入缓存
            wx.setStorageSync("userInfo", res.userInfo);
          },
          fail: function () {
           //获取用户信息失败后。请跳转授权页面
           wx.showModal({
            title: '提醒',
            content: '尚未进行授权,请点击确定跳转到授权页面进行授权。',
            success: function (res) {
             if (res.confirm) {
              //跳转到授权界面
              wx.navigateTo({
               url: '/pages/login/login',
              })
             }
            }
           })
          }
         })

    微信小程序案例:

    我和怪兽有个合影

  • 相关阅读:
    51串口通信
    juicer使用备忘
    51单片机音乐盒程序
    最精简24L01程序--接收
    sqlserver 数据库迁移
    sqlserver自增主键
    js keycode
    tabindex 去掉虚线
    div 绑定keyup
    sqlserver 当前时间减去30天
  • 原文地址:https://www.cnblogs.com/lianchao88/p/13201937.html
Copyright © 2011-2022 走看看