小程序模板网

关于微信小程序拒绝授权后,重新授权并获取用户信息

 最近公司做了一些有关微信小程序的项目,涉及到授权获取用户基本信息,但是在拒绝授权之后就不会再出现授权窗口;

  看网上也有很多人遇到了同样的问题,所以记录下来我的处理方法,供大家和自己学习和记录:

  当调用小程序 wx.getUserInfo(OBJECT) 获取用户基本信息时,需要用户进行授权操作,如果用户点击了拒绝,则再次调用该方法就不会出现对应的授权窗口,很是让人困惑;

  找了许久,最后让我发现了它:------> wx.openSetting(OBJECT),下面让我们认识一下:

  wx.openSetting(OBJECT)

  设置:调起客户端小程序设置界面,返回用户设置的操作结果;基础库 1.1.0 开始支持,低版本需做“兼容处理”

  

  

  通过该方法可继续进行授权操作,不多做解释,直接上代码:


				
  1. 1 var loginStatus = true;
  2. 2 getPromission: function() {
  3. 3 if (!loginStatus) {
  4. 4 wx.openSetting({
  5. 5 success: function (data) {
  6. 6 if(data) {
  7. 7 if (data.authSetting["scope.userInfo"] == true) {
  8. 8 loginStatus = true;
  9. 9 wx.getUserInfo({
  10. 10 withCredentials: false,
  11. 11 success: function (data) {
  12. 12 console.info("2成功获取用户返回数据");
  13. 13 console.info(data.userInfo);
  14. 14 },
  15. 15 fail: function () {
  16. 16 console.info("2授权失败返回数据");
  17. 17 } 21 });
  18. 22 }
  19. 23 } 25 },
  20. 26 fail: function () {
  21. 27 console.info("设置失败返回数据");
  22. 28 } 32 });
  23. 33 }else {
  24. 34 wx.login({
  25. 35 success: function (res) {
  26. 36 if (res.code) { 38 wx.getUserInfo({
  27. 39 withCredentials: false,
  28. 40 success: function (data) {
  29. 41 console.info("1成功获取用户返回数据");
  30. 42 console.info(data.userInfo);
  31. 43 },
  32. 44 fail: function () {
  33. 45 console.info("1授权失败返回数据");
  34. 46 loginStatus = false;
  35. 47 // 显示提示弹窗
  36. 48 wx.showModal({
  37. 49 title: '提示标题',
  38. 50 content: '提示内容',
  39. 51 success: function (res) {
  40. 52 if (res.confirm) {
  41. 53 console.log('用户点击确定')
  42. 54 } else if (res.cancel) {
  43. 55 wx.openSetting({
  44. 56 success: function (data) {
  45. 57 if (data) {
  46. 58 if (data.authSetting["scope.userInfo"] == true) {
  47. 59 loginStatus = true;
  48. 60 wx.getUserInfo({
  49. 61 withCredentials: false,
  50. 62 success: function (data) {
  51. 63 console.info("3成功获取用户返回数据");
  52. 64 console.info(data.userInfo);
  53. 65 },
  54. 66 fail: function () {
  55. 67 console.info("3授权失败返回数据");
  56. 68 } 72 });
  57. 73 }
  58. 74 } 76 },
  59. 77 fail: function () {
  60. 78 console.info("设置失败返回数据");
  61. 79 } 83 });
  62. 84 }
  63. 85 }
  64. 86 });
  65. 87 } 91 });
  66. 92 }
  67. 93 },
  68. 94 fail: function () {
  69. 95 console.info("登录失败返回数据");
  70. 96 }100 });
  71. 101 }
  72. 102 }

  以上是我实现的内容,没做处理,希望对大家有帮助!!!喷子勿喷



易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/23756.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询