问题描述:
很久没有写过小程序了,突然让改一个没有写过的小程序权限问题,试了大半天!!!
问题是,小程序页面会调用openSetting
这个接口API以获得权限列表,操作权限。但是点开设置时发现列表为空!!!问题出来了,一定要先授权,才会有权限列表,不授权,列表里面怎么可能有数据嘛。
实现效果:
官方文档:
以飞书小程序为例,其实官方文档很清楚的说明了API权限
解决方案:
以获取用户信息权限为例
// 第一步获取用户信息
let Result={};
tt.getSetting({
success(res) {
Result=res || {}
},
});
//第二步判断是否授权 **注意使用全等号**
if(Result.authSetting['scope.userInfo']===undefined){
//未授权用户信息
tt.getUserInfo(); // 调用API授权用户信息
}
if(Result.authSetting['scope.userInfo']===false){
//已经授权,但未开启权限
uni.showModal({
showCancel: true,
title: '权限不足',
confirmText: '去设置',
content: '获取用户信息权限未开启,请开启对应权限',
success() {
tt.openSetting();
}
});
}