uni-app uni.getLocation定位失效

uni-app uni.getLocation定位失效

开发环境 版本号 项目创建方式
Windows 3.2.2 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:3.2.2

HBuilderX类型:正式

HBuilderX版本号:3.2.2

手机系统:Android

手机系统版本号:Android 7.0

手机厂商:华为

手机机型:cpn_aloo

页面类型:vue

打包方式:云端

App下载地址或H5网址:[https://m.taotanzhang.com/](https://m.taotanzhang.com/)

示例代码:

open() { var that = this uni.getLocation({ type: ‘gcj02’, geocode: true, success: function(res) { console.log(‘当前位置的经度:’ + res.longitude); console.log(‘当前位置的纬度:’ + res.latitude); uni.showToast({ icon: ‘none’, duration: 10000, title: res.longitude + “____” + res.latitude }) that.address = res that.latitude = res.latitude that.longitude = res.longitude },
fail(err) {
uni.showToast({
icon: ‘none’,
title: err,
duration: 10000
})
}
});
},


在onShow 调用open 方法

预期结果:
获取到经纬度定位等信息

实际结果:
进入页面,没有任何数据展示,没有提示失败还是成功

bug描述:
使用uni.getLocation  开通了高德地图的权限,点击获取信息,在没有高德地图APP 的情况下,获取的数据都是失败的,下载安装了高德地图开通的权限,就能获取到定位信息

更多关于uni-app uni.getLocation定位失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app uni.getLocation定位失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你的描述,uni.getLocation 在高德地图APP未安装时定位失败,安装后恢复正常,这通常涉及以下几个关键点:

  1. 定位服务依赖:在Android平台上,uni-app的定位功能(特别是使用高德地图SDK时)可能依赖系统定位服务或第三方地图APP的辅助定位模块。当高德地图APP未安装时,系统可能无法调用完整的定位能力,导致静默失败。

  2. 权限与配置检查

    • 定位权限:确保已在 manifest.json 中正确配置定位权限(如 ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION),并在App首次运行时动态申请权限。
    • 高德地图SDK配置:检查高德地图开放平台的应用Key是否在 manifest.jsonApp SDK配置 中正确填写,且包名与开放平台注册一致。
  3. 失败回调处理:你的代码中 fail 回调未触发,可能是由于定位请求超时或异常未被捕获。建议在 fail 回调中打印具体错误码(如 err.errCodeerr.errMsg),例如:

    fail(err) {
      console.error('定位失败:', err.errCode, err.errMsg);
      uni.showToast({ title: '定位失败: ' + err.errMsg });
    }
    
  4. 定位超时设置:可尝试增加 timeout 参数(单位毫秒)避免长时间等待,例如:

    uni.getLocation({
      type: 'gcj02',
      geocode: true,
      timeout: 10000, // 10秒超时
      success: () => {},
      fail: () => {}
    });
回到顶部