微信小程序判断如何是否授权

2025-12-28 05:12:43

1、微信小程序的授权为了用户体验所以如果用户一直拒绝,到后面授权框都不出现了,所以必须的自己想办法解决。当然啦,这里也是提醒大家要做好用户体验,可是在企业有时候小程序就是需要用户的信息时,就需要一直显示授权并友好引导用户允许授权。

微信小程序判断如何是否授权

2、这一个是需要一个按钮来实现,比第一个好,至少每次点击会弹框,但是有的时候并不是用户自己发起的怎么办?所以问题就来了,下面是自己在做小程序时的一个解决办法,就是如果用户不同意授权就一直弹窗提示,废话不多说,直接上代码:/**

    * 设置用户授权

    * scopeType:权限类型(userInfo/werun)

    * fun:回调函数,表示需要刷新的内容

    */

validateAuthorize: function (scopeType, fun) {

var _this = this;

wx.getSetting({

success: result => {

微信小程序判断如何是否授权

3、if (result.authSetting['scope.' + scopeType]) {

_this.globalData.authType[scopeType] = true;

fun();

} else {

wx.authorize({

scope: 'scope.' + scopeType,

success(res) {

_this.globalData.authType[scopeType] = true;

fun();

},

fail() {

wx.showModal({

title: '提示',

content: '请允许授权以便为你提供更好的服务',

showCancel:false,

success:function(){

wx.openSetting({

success: (res) => {

if (res.authSetting['scope.' + scopeType]) {

_this.globalData.authType[scopeType] = true;

fun();

} else {

_this.globalData.authType[scopeType] = false;

_this.validateAuthorize(scopeType, fun);

}

},

fail() {

_this.globalData.authType[scopeType] = false;

_this.validateAuthorize(scopeType, fun);

}

});

}

})

}

});

}

}

})

}

微信小程序判断如何是否授权

4、第一个参数是权限的类型,例如:用户信息,微信运动等(userInfo/werun)

第二个参数是用户允许授权后的所要执行的回调函数,这里是根据之前的小程序的需求来定的,当然这里也可以在调用的地方刷新当前页面的数据,毕竟用户重新允许授权后,用户的信息不刷新是拿不到的呢,基于用户信息存放在app.js中的。同时会在入口文件app.js的globalData对象中保存每一个授权项的授权情况,以便后面判断授权信息,用户拒绝授权会有相应的提示告诉用户请允许授权等信息。

微信小程序判断如何是否授权

5、用法:var _this = this;

if (!app.globalData.authType.userInfo) {

app.validateAuthorize('userInfo', function () {

app.wxCheckLogin(function () {

_this.onLoad();

_this.onShow();

});

});

} else {

app.wxCheckLogin(function () {

_this.onLoad();

_this.onShow();

});

}

以上代码就是先判断用户是否授权,如果授权了就检查登录,如果没有授权则需要先授权,然后在检查登录的情况,回调函数里面就是刷新当前页面的数据信息。

微信小程序判断如何是否授权

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢