uniapp授权如何多个权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<template>
    <div>
        <button @click="handleRequestPermission">拉取权限</button>
    </div>
</template>
<script>
export default {
    data() {
        return {
            hasMicPermission: false, //录音权限
            hasCameraPermission: false, //摄像头权限
        }
    },
    methods: {
        checkPermission() {
            const that = this;
            // 检查相机麦克风权限 
            // #ifdef MP
            uni.getSetting({
                success: async function (res) {
                    that.hasMicPermission = res.authSetting['scope.record'];
                    that.hasCameraPermission = res.authSetting['scope.camera'];
                    if (!that.hasMicPermission) {
                        uni.authorize({
                            scope: "scope.record",
                            success(res) {
                                that.hasMicPermission = true;
                                console.log("同意麦克风授权");
                            },
                            fail(err) {
                                console.log("拒绝麦克风授权");
                            }
                        })
                    }
                    if (!that.hasCameraPermission) {
                        uni.authorize({
                            scope: "scope.camera",
                            success(res) {
                                that.hasCameraPermission = true;
                                console.log("同意相机授权");
                            },
                            fail() {
                                console.log("拒绝相机授权");
                            }
                        })
                    }
                }
            });
            // #endif
        },
        // 操作时候,判断是否有相关权限
        handleRequestPermission() {
            const that = this;
            uni.showModal({
                title: '提示',
                content: '缺少相关权限,是否前往开启?',
                success(res) {
                    if (res.confirm) {
                        // 点击确定按钮,尝试拉起权限
                        uni.openSetting({
                            success(res) {
                                console.log(res)
                                //相机
                                if (res.authSetting['scope.camera']) {
                                    that.hasCameraPermission = true;
                                } else {
                                    uni.showToast({
                                        title: "摄像头权限未开启",
                                        icon: "none"
                                    });
                                }
                                //麦克风
                                if (res.authSetting['scope.record']) {
                                    that.hasMicPermission = true;
                                } else {
                                    uni.showToast({
                                        title: "麦克风权限未开启",
                                        icon: "none"
                                    });
 
                                }
                            },
                            fail(err) {
                                uni.navigateBack()
                            }
                        });
                    }
                },
            });
        },
    },
    mounted() {
        // 检查权限
        this.checkPermission();
    }
}
</script>

  

posted on   久居我梦  阅读(33)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示