微信小程序用户授权弹窗 拒绝时引导用户重新授权实现

  • 时间:
  • 浏览:29

媒介

我们正在开辟小法式时,若是念获得用户疑息,便需求获得用的受权,若是用户误面了谢绝受权,我们怎样样来准确的指导用户从头受权呢。明天便去给各人讲讲若是准确的指导用户受权。

老例子,先看结果图

从上图能够看出,我们正在用户面击谢绝受权时,我们会弹出1个提醒框,提醒用户来设置页从头受权,当用户来受权页从头受权当前,我们再回到尾页,面击获得用户疑息时,就能够胜利的获得到用户疑息了。
以下图蓝色框里,便是我们胜利的获得的用户疑息。

 

1,我们获得用户疑息的时分需求用户受权

我们面击获得用户疑息时,凡是会弹出以下提醒框,若是用户面击了打消,便再也出有法子经由过程面击受权按钮获得用户疑息了。

以是接上去我们要做的便是正在用户谢绝了受权时,指导用户来设置页从头受权。
把获得用户受权的代码先揭给各人

2,检测用户是不是受权

我们正在用户面击了下面界说的button按钮后,做权限检测。代码以下。

 getUserInfo: function(e) {
  let that = this;
  // console.log(e)
  // 获得用户疑息
  wx.getSetting({
   success(res) {
    // console.log("res", res)
    if (res.authSetting['scope.userInfo']) {
     console.log("已受权=====")
     // 已受权,能够间接挪用 getUserInfo 获得头像昵称
     wx.getUserInfo({
      success(res) {
       console.log("获得用户疑息胜利", res)
       that.setData({
        name: res.userInfo.nickName
       })
      },
      fail(res) {
       console.log("获得用户疑息失利", res)
      }
     })
    } else {
     console.log("已受权=====")
     that.showSettingToast("请受权")
    }
   }
  })
 },

给各人简朴剖析下。

wx.getSetting :用去获得用户受权列表

if (res.authSetting['scope.userInfo']) 代码用户受权胜利,若是用户出有受权,便代表受权失利。

正在受权失利时,我们挪用that.showSettingToast()办法

3,showSettingToast办法以下

 // 翻开权限设置页提醒框
 showSettingToast: function(e) {
  wx.showModal({
   title: '提醒!',
   confirmText: '来设置',
   showCancel: false,
   content: e,
   success: function(res) {
    if (res.confirm) {
     wx.navigateTo({
      url: '../setting/setting',
     })
    }
   }
  })
 }

那办法做的便是指导用户来设置页。

4,我们的设置页

我们的设置页实在很简朴,只要上图那么1段代码。

 

5,来体系设置页

我们下面第4步的button按钮,面击当前,便会来体系设置页。

能够看到体系设置页,有1个开闭,当用户面击开闭时,就能够从头受权啦。

从头受权胜利当前,我们回到尾页,就能够胜利的获得到用户疑息了。

到那里我们便胜利的真现了指导用户受权的功用了。

把index.wxml战index.js代码揭出去给各人

index.wxml



{{name}}

index.js

//index.js
Page({
 getUserInfo: function(e) {
  let that = this;
  // console.log(e)
  // 获得用户疑息
  wx.getSetting({
   success(res) {
    // console.log("res", res)
    if (res.authSetting['scope.userInfo']) {
     console.log("已受权=====")
     // 已受权,能够间接挪用 getUserInfo 获得头像昵称
     wx.getUserInfo({
      success(res) {
       console.log("获得用户疑息胜利", res)
       that.setData({
        name: res.userInfo.nickName
       })
      },
      fail(res) {
       console.log("获得用户疑息失利", res)
      }
     })
    } else {
     console.log("已受权=====")
     that.showSettingToast("请受权")
    }
   }
  })
 },

 // 翻开权限设置页提醒框
 showSettingToast: function(e) {
  wx.showModal({
   title: '提醒!',
   confirmText: '来设置',
   showCancel: false,
   content: e,
   success: function(res) {
    if (res.confirm) {
     wx.navigateTo({
      url: '../setting/setting',
     })
    }
   }
  })
 },
})

有任何干于小法式的成绩能够减我微疑:2501902696(备注小法式)

以上便是本文的全数内容,期望对各人的进修有所帮忙,也期望各人多多撑持剧本之家。