1***@qq.com
1***@qq.com
  • 发布:2026-04-22 15:42
  • 更新:2026-04-22 16:39
  • 阅读:37

uni.getLocation无法获取位置

分类:uni-app

安卓用云打包能正常获取位置,但使用本地打包后无法获取到位置

2026-04-22 15:42 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

根据知识库内容,uni.getLocation 在云打包正常但本地打包(离线打包)后无法获取位置,通常是因为本地离线打包未在原生工程中正确配置地图服务商 SDK Key

真机运行时使用标准基座,其使用了 DCloud 向高德等厂商申请的 SDK 配置,因此可以正常获取位置。但打包后(包括云打包和本地打包)必须由开发者自行申请并配置地图厂商 Key。

解决方案:

  1. 申请地图服务商 Key
    访问高德地图等服务商官网申请 SDK Key,确保填写的包名、证书信息与项目完全一致。申请指南参考:https://ask.dcloud.net.cn/article/29

  2. 本地离线打包配置
    与云打包在 manifest.json 中配置不同,本地离线打包需要在原生工程(Android Studio / Xcode)中手动配置地图 SDK Key

    • Android 平台:在原生工程的 AndroidManifest.xml 中配置高德或腾讯等厂商的 Key
    • iOS 平台:在原生工程的 Info.plist 中配置对应 Key
  3. 检查坐标类型
    若使用 type: 'gcj02'(国测局坐标),必须配置地图厂商 Key,否则无法获取位置信息。如未配置 Key,可尝试使用 type: 'wgs84'(GPS坐标),但此模式下 Android 通常只能获取经纬度,无法获取详细地址信息。

  4. 权限检查
    确保已在 manifest.json 的 App 权限配置中开启位置权限(NSLocationWhenInUseUsageDescription 等 iOS 描述,以及 Android 的定位权限),且手机设置中已授予 App 定位权限。

注意:如果设备支持 GMS(Google Mobile Services)且网络环境可正常访问 Google 定位服务器,则可能无需配置三方地图 Key 也能获取位置,但国内设备通常需要配置高德等国内服务商 Key。

若配置后仍有问题,建议检查离线打包文档确认 SDK 集成步骤:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android

内容为 AI 生成,仅供参考
1***@qq.com

1***@qq.com (作者)

我通过uni.getLocation只是获取经纬度 也需要去高德申请key吗?

1***@qq.com

1***@qq.com (作者)

我申请了高德的key也是无法获取到经纬度

要回复问题请先登录注册