uniapp中小程序的授权操作

使用uniapp开发小程序时,大致获取授权及权限的操作如下:

<template>
    <view>
        <h2>index页面</h2>
        <!-- 当用户初始时或者由于失误拒绝授权时,需要点击事件手动授权 -->
        <button @click="getHandle">手动授权按钮</button>
    </view>
</template>

<script>
    export default {
        data() {
            return {
            
            }
        },
        onLoad() {
            // 初始时获取用户设置
            this.accessPermission();
        },
        methods: {
            // 获取用户设置函数
            accessPermission() {    
                var _this=this;
                uni.getSetting({
                    success(res) {
                        // 判断scope后对应的scope.userInfo是否授权
                        if (res.authSetting[‘scope.userInfo‘]) {
                            // 如果已经授权,则执行后续操作
                            uni.getSetting({
                                success(res) {
                                    console.log(res);
                                }
                            })
                        } else if (!res.authSetting[‘scope.userInfo‘]) {
                            // 如果没有授权则进行提前授权--进入页面时弹出
                            uni.authorize({
                                // 配置授权选项--微信步数
                                scope:‘scope.userInfo‘,
                                success(res){
                                    // 授权成功后可以直接获取用户相关信息
                                    console.log(res);
                                    console.log("授权成功")
                                },
                                fail(err){
                                    // 授权失败时,等待用户手动点击授权
                                    console.log("授权失败")
                                }
                            })
                        };
                    }
                })
            },
            // 点击激发授权事件
            getHandle() {
                uni.getSetting({
                    success(res){
                        if(res.authSetting[‘scope.userInfo‘]){
                            wx.getUserInfo({
                                success(res){
                                    // 如果已经授权,在这里可获取相关数据
                                    console.log(res);
                                },
                                fail(err){
                                    // 错误信息
                                    console.log(err)
                                }
                            })
                        }else if(!res.authSetting[‘scope.userInfo‘]){
                            // 如果要获取的权限尚未授权,则此时触发授权
                            uni.showModal({
                                //弹出提示框
                                title: ‘是否打开设置页?‘,
                                content: ‘需要在设置中获取xx信息和xx权限‘,
                                success(res) {
                                    if (res.confirm) {
                                        uni.openSetting({
                                            // 确认后打开设置页面
                                            success(res) {
                                                console.log(res.authSetting)
                                            },    
                                        })
                                    } else if (res.cancel) {
                                        console.log(‘用户点击取消‘);
                                    }
                                }
                            });
                            
                        }
                    }
                })    
            },
        },
    }
</script>

<style>

</style>

代码截图:

uniapp中小程序的授权操作

 

 uniapp中小程序的授权操作

 

 uniapp中小程序的授权操作

uniapp中小程序的授权操作

上一篇:数据库必知词汇:SQL标准


下一篇:数据库必知词汇:指针控制语言CCL