zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

uni-app:微信小程序:使用位置前先判断是否有权限授权(hbuilderx 3.7.3)

App微信程序权限 判断 是否 位置 授权
2023-09-14 08:59:32 时间

一,代码:

<template>
    <view>
        <button style="width:710rpx;height:80rpx;" @click="getSetting">打开地图</button>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                
            }
        },
        methods: {
            openMap(){
                uni.getLocation({
                            success: res => {
                                console.log('location success', res)
                                uni.openLocation({
                                    latitude: res.latitude,
                                    longitude: res.longitude,
                                    scale: 18
                                })
                            },
                            fail:res=>{
                                console.log('location fail', res)
                            }
                        });
            },
            
            //得到权限列表
            getSetting(){
                let that = this;
               uni.getSetting({
                   success: function(res) {
                       var authList = res.authSetting;
                       console.log(authList);
                       if (!authList['scope.userLocation']) {
                             console.log("未得到位置权限");
                             that.openSetting();
                        } else {
                            console.log("已得到位置权限");
                            that.openMap();
                        }
                           },
                    });
            },
            
            //打开一项权限
            openSetting(){
                let that = this;
              uni.showModal({
                title: '是否授权当前位置',
                content: '需要获取您的地理位置,请确认授权,否则定位功能将无法使用',
                success(tip) {
                    if (tip.confirm) {
                        uni.authorize({
                             scope: 'scope.userLocation',
                             success() {
                                 uni.showToast({
                                     title: '授权成功',
                                     icon: 'success',
                                     duration: 1000
                                 });
                                setTimeout(function() {
                                     that.openMap(); 
                                }, 1000)
                             }
                        })
                    } else {
                        uni.showToast({
                            title: '授权失败',
                            icon: 'none',
                            duration: 1000
                        })
                    }
                },
                });
            },
        }
    }
</script>

<style>

</style>

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/
         或: https://gitee.com/liuhongdi

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,测试效果

三,查看hbuilderx的版本: