微信小程序获取用户信息

有时可能需要获取用户的头像、昵称等信息,有时还需要获取用户的位置等,本文主要讲解如何调取API来获取用户的信息,需要注意的是用户授权成功后,才可以成功获取用户信息。

用户登录

wx.login是用户登录API,获取code,传递给服务器后,可以用code换取用户的openid和seeeion_key,这些都是用户的唯一标识和会话认证。

wx.login ({
  timeout: 0,                            // 设置超时时间,可以不设置
  success: funcation(res){
    // 登录成功
    res.code// 登录获取的code
    // 发送给服务器code
    wx.request({
            url: '自己服务器的地址',
      data: {
        code: res.code,
      }                                  // 设置参数把code传递给服务器
    })
  },
  fail: funcation(){
    // 登录失败
  },
  complete: funcation(){
    // 不管成功失败都会执行
  }
})

wx.checkSession检测用户授权登录是否过期,如果获取成功则说明没有过期,如果获取失败则说明已经过期,需要重新获取登录。

wx.checkSession ({
  success: funcation(){
    // 未过期
  },
  fail: funcation(){
    // 已经过期
    wx.login()    // 重新登录
  },
  complete: funcation(){
    // 不管成功失败都会执行
  }
})

用户信息

获取用户的头像、昵称等信息。其中字段“withCredentials”类型为boolean值,当为true时,需要此前调用了wx.login,且登录状态没过期,此时返回的数据包含encryptedData等敏感信息;当为false时,不要求有登录状态,返回的数据不包含encryptedData等敏感信息。

wx.getUserInfo({
  withCredentials: false,
  lang: 'en',                         // 用户信息显示的语言
  success: funcation(res){
    // 获取用户信息成功
    var userInfo = res.userInfo       // 用户信息对象
    userInfo.nickName                 // 用户昵称
  userInfo.avatarUrl           // 用户头像
  userInfo.gender              // 用户性别 0:未知,1:男,2:女
  userInfo.province            // 用户所在省份
  userInfo.city                // 用户所在城市
  userInfo.country             // 用户所在国家
},
fail: funcation(){
  // 获取用户信息失败
},
complete: funcation(){
  // 不管成功失败都会执行
}
  })

注意 此接口调用不在弹出授权界面。

微信小程序整体登录流程如图所示。

微信小程序获取用户信息

用户位置

map地图组件我们讲解了map组件,这里讲解通过API来获取用户的位置信息。获取位置信息需要用户授权。
获取当前用户位置的代码如下:

wx.getLocation({
  type: 'wgs84',    // 类型"wgs84"返回gps坐标,"gcj02"返回wx.openLocation坐标
  altitude: false,  //true返回结果带高度信息,返回结果会变慢,false返回结果不带高度信息
  success: funcation(res){
  // 获取成功
  res.latitude      // 纬度,范围-90°~90°,负数表示南纬
  res.longitude     // 经度,范围-180°~180°,负数表示西经
  res.speed         // 速度,单位m/s
  res.accuracy      // 位置的精确度
  res.altitude      // 高度,单位m
  },
  fail: funcation(){
    // 获取失败
  },
  complete: funcation(){
    // 不管成功失败都会执行
  }
})

查看当前位置。会调用微信小程序内置的地图来查看当前的位置信息,界面等也是微信小程序内置的。

wx.openLocation({
  latitude:' latitude',      // 使用gcj02坐标系,必须填写
  longitude:' longitude',    // 使用gcj02坐标系,必须填写
  scale: 18,                 // 地图缩放比例,范围5~18
  name: 'name',              // 位置名
  address: 'address',        // 位置的详细说明
  success: funcation(){
  // 获取成功
  },
  fail: funcation(){
    // 获取失败
  },
  complete: funcation(){
    // 不管成功失败都会执行
  }
})

选取位置。打开微信小程序内置的地图来选择指定的位置,可以进行搜索、地图选点等,微信小程序自带了样式。

wx.chooseLocation({
  success: funcation(res){
      // 选取成功
      res.name        // 位置名称
      res.address     // 位置的详细地址
      res.latitude    // 纬度,范围-90°~90°,负数表示南纬。使用gcj02坐标系
      res.longitude   // 经度,范围-180°~180°,负数表示西经。使用gcj02坐标系
    },
    fail: funcation(){
      // 选取失败
    },
    complete: funcation(){
      // 不管成功失败都会执行
    }
  })

用户授权

之前讲了很多功能都需要用户授权,如相册、地图等。这里就来讲一下用户授权和注意点。

当调用到用户授权的功能时,微信小程序会自动弹出对话框提示用户是否授权,但是此对话框只会弹出一次,一旦用户选择,将不再弹出。

  • wx.openSetting:会调用起系统程序的设置界面,返回用户设置操作的结果,用户可以在此界面修改授权结果。
  • wx.getSetting:会把用户已经授权的结果以json的形式返回给我们。
  • wx.authorize:可以查看指定的某授权结果。
wx.authorize({
  scope: 'scope',// 需要获取权限的scope
  success: funcation(){
    // 授权成功允许调用
  },
  fail: funcation(){
    // 授权失败不允许调用
  },
  complete: funcation(){
    // 不管成功失败都会执行
  }
})

scope列表如表所示:
微信小程序获取用户信息

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!