我是靠谱客的博主 妩媚小懒猪,最近开发中收集的这篇文章主要介绍uniapp 拉起授权 (兼容拒绝后重新开启权限),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

uniapp 获取用户权限的时候 如果不小心点击了取消权限就会发现,第二次无论怎么点击都无法重新拉起授权界面的按钮;

>(获取用户权限除外  getUserProfile  getUserinfo 无论拒绝还是同意每一次都能重新拉起授权)

拒绝授权后就必须进入设置中开启授权,那么怎么直接在小程序中直接跳转设置界面重新打开这一项权限呢?

使用openSetting函数

但是如果你直接在外部(authorize函数得外部)调用openSetting函数 你会发现进入的设置的界面里 没有你需要的重新打开的权限  !!!

这里就是一个则恶心的坑!反正我是搞了老半天才发现的  openSetting拉起设置界面打开某一项拒绝授权的权限时,必须在拉起这项权限的 authorize 函数中的 fail 函数   中使用openSetting函数,且使用这个函数也必须使用一个confirm 方法进行包裹提示!!

代码如下:

pullAuth() {
// 读取 小程序已经授权的权限
uni.getSetting({
success(res) {
// 判断是否拥有此权限进行拉起授权
和 重新授权功能
if (!res.authSetting['scope.writePhotosAlbum']) {
// 未授权此项权限 拉起授界面
uni.authorize({
scope: 'scope.writePhotosAlbum',
success() {
// 授权成功后 就可以执行 需要权限的
操作函数了
//在这里调用uni.saveImageToPhotosAlbum(OBJECT)
// 使用已授权的功能
uni.showToast({
title: '可以使用系统相册存储权限',
icon: 'success'
});
},
fail(err) {
/*
第一次拒绝授权后必须在 uni.authorize的fail中使用
uni.openSetting 才能进入设置界面打开授权按钮
*/
uni.showToast({
title: '拒绝授权',
icon: 'none'
});
// 这里必须经过一个confirm 不然也会出现问题(啥问题我也不知道)
uni.showModal({
title: '是否重新授权系统相册的存储功能',
success(res) {
if (res.confirm) {
uni.openSetting({
success() {
console.log('开启权限成功');
},
fail() {
console.log('开启权限失败');
}
});
} else if (res.cancel) {
console.log('拒绝开启开启权限');
}
}
});
}
});
} else {
//在这里调用uni.saveImageToPhotosAlbum(OBJECT)
// 使用已授权的功能
uni.showToast({
title: '已经授权系统相册存储权限'
});
}
}
});
}

最后

以上就是妩媚小懒猪为你收集整理的uniapp 拉起授权 (兼容拒绝后重新开启权限)的全部内容,希望文章能够帮你解决uniapp 拉起授权 (兼容拒绝后重新开启权限)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部