小程序获取当前位置

首先先配置小程序位置

在manifest.json文件中,打开源码视图

 

 在源码视图中,找到小程序相关添加上图中蓝色圈起的部分

 

 

最后直接上代码

// 获取当前用户的位置
            getUserLocation(){
                let that = this
                uni.getSetting({
                    success: (res) => {
                        let authStatus = res.authSetting['scope.userLocation'];
                        // 如果没有授权位置
                        if(!authStatus){
                            //向用户发起授权请求
                            console.log('授权')
                            uni.authorize({
                                scope: "scope.userLocation",
                                success: (res) => {
                                    // console.log(res)
                                    uni.getLocation({
                                        type: 'wgs84',
                                        geocode:true,//设置该参数为true可直接获取经纬度及城市信息
                                        success: function (res) {
                                            console.log(res)
                                            that.reportContent.lat = res.latitude
                                            that.reportContent.lon = res.longitude
                                            that.reportContent.lonlat = '[' + res.longitude + ',' + res.latitude + ']'
                                        },
                                        fail: function () {
                                            uni.showToast({
                                                title: '获取地址失败,请打开手机的定位服务',
                                                icon:'none',
                                                duration: 1500
                                            });
                                        }
                                    });
                                },
                                fail: (err) => {
                                    console.log(err)
                                    uni.showModal({
                                        title: '授权失败',
                                        content: '需要获取您当前位置,请在设置界面打开相关权限',
                                        success: (res) => {
                                            if (res.confirm) {
                                                uni.openSetting()
                                            }
                                        }
                                    })
                                }
                            })
                        }else{
                            console.log('已授权')
                            uni.getLocation({
                                type: 'wgs84',
                                geocode:true,//设置该参数为true可直接获取经纬度及城市信息
                                success: function (res) {
                                    console.log(res)
                                    that.reportContent.lat = res.latitude
                                    that.reportContent.lon = res.longitude
                                    that.reportContent.lonlat = '[' + res.longitude + ',' + res.latitude + ']'
                                },
                                fail: function () {
                                    uni.showToast({
                                        title: '获取地址失败,请打开手机的定位服务',
                                        icon:'none'
                                    });
                                }
                            });
                        }
                    }
                })
                
            },

 

posted @ 2022-08-02 18:35  king'sQ  阅读(744)  评论(0编辑  收藏  举报