uni-app ios系统高德定位问题 部分手机获取不到位置

发布于 1周前 作者 itying888 来自 Uni-App

uni-app ios系统高德定位问题 部分手机获取不到位置

项目属性 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows 10 专业版
HBuilderX类型 正式
HBuilderX版本号 3.98
手机系统 iOS
手机系统版本号 iOS 16
手机厂商 苹果
手机机型 iphone 11
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

//获取定位信息  
getLocations(){  
    const that = this;  
    uni.getLocation({  
        type: 'gcj02',  
        geocode:true,//设置该参数为true可直接获取经纬度及城市信息  
        success: function (res) {  
            console.log('获取定位信息',res);  
            that.locationStr =  res.address.city + res.address.district + res.address.street + res.address.streetNum  
        },  
        fail: function (err) {  
            console.log('获取定位失败', err)  
            uni.showToast({  
                title: err.errMsg,  
                duration: 5000,  
                icon:'none'  
            });  
        }  
    });  
},

操作步骤:

  • 云端打包上架到app Store,下载后打开app获取定位信息

预期结果:

  • 获取到当前位置

实际结果:

  • 获取定位失败,错误日志 getLocationtfailError Domain=PGLocationCode=2“不能获取到位置" UserInfo=NSLocalizedDescription=不能获取到位置 参考链接

bug描述:

  • ios高德定位 获取定位失败,错误日志 getLocationtfailError Domain=PGLocationCode=2“不能获取到位置" UserInfo=NSLocalizedDescription=不能获取到位置 参考链接

6 回复

朋友,我也遇到这个问题了,请问你已经解决了吗,可以分享下解决方案吗?


朋友,我也遇到这个问题了,请问你已经解决了吗,可以分享下解决方案吗?

苹果定位问题加wx:shenhl-0321

朋友们,解决了吗????????????/

我是getLonationChange方法遇到这个问题

uni-app 中使用高德地图进行定位时,部分 iOS 设备可能无法获取到位置信息。这个问题可能由多种原因引起,以下是一些常见的排查和解决方法:


1. 检查权限配置

确保在 manifest.json 中正确配置了定位权限:

{
  "app-plus": {
    "distribute": {
      "ios": {
        "permissions": {
          "NSLocationWhenInUseUsageDescription": "需要获取您的位置信息",
          "NSLocationAlwaysUsageDescription": "需要获取您的位置信息"
        }
      }
    }
  }
}

在 iOS 中,必须明确声明定位权限,否则无法获取位置信息。


2. 检查高德地图 SDK 配置

确保在 manifest.json 中正确配置了高德地图的 AppKey

{
  "app-plus": {
    "maps": {
      "amap": {
        "ios": "你的高德地图 iOS AppKey"
      }
    }
  }
}

如果 AppKey 配置错误,定位功能将无法正常使用。


3. 检查定位代码

确保定位代码正确,并且处理了可能的错误情况。例如:

uni.getLocation({
  type: 'wgs84', // 坐标系类型
  success: (res) => {
    console.log('定位成功', res);
  },
  fail: (err) => {
    console.error('定位失败', err);
  }
});

如果定位失败,可以通过 err 对象查看具体错误信息。


4. 检查设备设置

部分 iOS 设备可能禁用了定位服务,或者对应用未授权定位权限。可以引导用户检查以下设置:

  • 打开 设置 -> 隐私 -> 定位服务,确保定位服务已开启。
  • 检查应用是否被授权使用定位服务。

5. 检查高德地图 SDK 版本

确保使用的高德地图 SDK 是最新版本。旧版本可能存在兼容性问题。可以通过以下方式更新:

  • manifest.json 中指定高德地图 SDK 的版本。
  • 或者使用 uni-app 的插件市场中的高德地图插件。

6. 检查网络环境

部分 iOS 设备在弱网络环境下可能无法获取位置信息。可以尝试在良好的网络环境下测试。


7. 调试日志

uni-app 中开启调试模式,查看控制台日志,定位具体问题:

uni.setEnableDebug({
  enableDebug: true
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!