微信小程序> 微信小程序之微信授权讲解

微信小程序之微信授权讲解

浏览量:655 时间: 来源:土家稀哥

最近一直在做微信的小程序,填了很多坑,今天给大家分享一下,微信小程序中的授权。

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

小程序

这是小程序官方api的接口说明,相比大家都能看懂,但是如果我们只用这个来做授权的话,用户多拒绝几次,那么兄弟不好意思,这个api就没用了,根本不给你弹出授权的框了,以上是第一个api,下面还有一个:

小程序

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

/**     * 设置用户授权     * scopeType:权限类型(userInfo/werun)     * fun:回调函数,表示需要刷新的内容     */    validateAuthorize: function (scopeType, fun) {        var _this = this;        wx.getSetting({            success: result => {                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);                                        }                                    });                                }                            })                        }                    });                }            }        })    }
说明:

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

用法:

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();            });        }

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

最后提供一个微信官方的授权说明:点我去哦

如果觉得有帮助请我吃个糖吧!

小程序小程序

微信小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎