用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 实战教程 查看内容

小程序引导用户授权获取用户信息的方法

Rolan 2021-1-13 18:18

现在使用 wx.getUserInfo 是不会在出现获取用户信息弹框的 官方文档上面是要引导用户授权 但是具体方法没有详细列出

现在使用 wx.getUserInfo 是不会在出现获取用户信息弹框的 官方文档上面是要引导用户授权 但是具体方法没有详细列出,只是说使用 来引导。

这里我将说一下引导用户授权的详细方法  先上图

以下所有的代码仅供参考,app.js中代码量太大我都是局部复制出来的

第一步

先要制作一个页面,把这个页面当做你小程序一打开展示给用户的页面  在app.json 文件中把  这个页面路径写在 pages 下第一行  。

  1. <view class="container">
  2. <view class="login-icon">
  3. <image class="login-img" src="/images/bg2.png" style="width:{{windowWidth+'px'}};height:{{windowHeight+'px'}}">image>
  4. view>
  5. <view class="loginBtnView">
  6. <text>申请获取以下权限text>
  7. <text>获取你的公开信息(昵称.头像等)text>
  8. <button class="loginBtn" bindgetuserinfo='getUserInfo' open-type='getUserInfo'>授权登录button>
  9. view>
  10. view>

 

 第二部在app.js获取code。 具体如下

  1. //获取用户信息,
  2. // 小程序一打开先会运行app.js中的onLaunch函数 定义userinfo变量保存所有用户信息的 获取user这个缓存的内容
  3. onLaunch(options) {
  4. var _this=this
  5. var userinfo = wx.getStorageSync('user');
  6. // 如果不存在 调用getUserInfo()函数获取code值
  7. if (!userinfo) {
  8. this.getUserInfo();
  9. } else {
  10. // 如果存在 全局变量userInfo = wx.getStorageSync('user');缓存值中的内容
  11. this.globalData.userInfo = JSON.parse(userinfo);
  12. }
  13. },
  14. //此函数是为了判断用户有没有获取 临时登录凭证code 通过code才能在获取 session_key 和 openid 等。
  15. getUserInfo: function (cb) {
  16. var that = this
  17. if (this.globalData.userInfo.code) {
  18. typeof cb == "function" && cb(this.globalData.userInfo)
  19. } else {
  20. wx.login({
  21. success: function (res) {
  22. //获取code 并把它保存到globalData中
  23. var code = res.code;
  24. _this.globalData.code = code
  25. }
  26. });
  27. }
  28. },

第三步 就是在 第一步建的的这个页面中来响应 授权 具体如下:

  1. var app = getApp();
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. },
  8. /**
  9. * 生命周期函数--监听页面加载
  10. */
  11. onLoad: function(options) {
  12. // 当code获取到后 就可以直接跳转到你的小程序主页了 我的小程序主页是pages下的index
  13. if (app.globalData.userInfo.code) {
  14. wx.redirectTo({
  15. url:'/pages/index'
  16. })
  17. }
  18. },
  19. /**
  20. * 获取用户信息
  21. */
  22. getUserInfo(res) {
  23. app.globalData.userInfo = res.detail.userInfo;
  24. app.globalData.userInfo.iv = res.detail.iv;
  25. app.globalData.userInfo.encryptedData = res.detail.encryptedData;
  26. app.globalData.userInfo.signature = res.detail.signature;
  27. app.globalData.userInfo.code = app.globalData.code;
  28. // 把获取的用户信息放在本地缓存中
  29. wx.setStorageSync('user', JSON.stringify(app.globalData.userInfo));
  30. },

这里我把 我的app.js 中globalData的内容给大家看下 。只要是小程序经常用到的变量都可以保存到里面

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏