uniapp 开发小程序调用第三方地图app导航

2022-06-17  本文已影响0人  梅先森森森森森森
// 没有在登录的时候获取自己的定位 而是点击事件 调用openMapLocation()这个方法时获取了自己的定位 
//因考虑到用户拒绝获取自己的定位所以当用户再次点击后会唤起设置让用户打开定位 

// 这里传入的三个参数分别是  要去的  经度 纬度 以及 地址信息
openMapLocation(longitude = 113, latitude = 22, address = "测试地址") {
    // 获取定位信息
    uni.getLocation({
        type: 'wgs84', //返回可以用于uni.openLocation的经纬度
        // 用户允许获取定位
        success: function (res) {
            console.log(res,'经纬度');
            if(res.errMsg=="getLocation:ok") {
                console.log(latitude)
                console.log(longitude)
                uni.openLocation({
                    // 传入你要去的纬度
                    latitude: latitude,
                    // 传入你要去的经度
                    longitude: longitude,
                    // 传入你要去的地址信息 不填则为空
                    address: address,
                    // 缩放大小
                    scale:18,
                    success: function () {
                           console.log('success');
                    }
                });
            }
        },
        // 用户拒绝获取定位后 再次点击触发
        fail: function(res) {
            console.log(res)
            if(res.errMsg == "getLocation:fail auth deny"){
                uni.showModal({
                    content:'检测到您没打开获取信息功能权限,是否去设置打开?',
                    confirmText: "确认",
                    cancelText:'取消',
                    success: (res) => {
                        if(res.confirm ){
                            uni.openSetting({
                                success: (res) => {
                                    console.log('确定');
                                }
                            })
                        }else {
                            console.log('取消');
                            return false;
                        }
                    }
                })                                              
            }
        }
    }); 
}
//  切记这里必须配置否则会报错 看看下图
image.png
上一篇下一篇

猜你喜欢

热点阅读