uni-app 4.15版本 ios高德地图获取定位失败 3.7.3版本可以获取

uni-app 4.15版本 ios高德地图获取定位失败 3.7.3版本可以获取

操作步骤:

  • uni.getLocation (type: ‘gcj02’) ios 报错位置获取失败。安卓没有问题 使用的高德地图定位

预期结果:

  • 获取成功

实际结果:

  • 获取失败

bug描述:

  • uni.getLocation (type: ‘gcj02’) ios 报错位置获取失败。安卓没有问题 使用的高德地图定位
  • 使用低版本HBuilderX 3.73版本没有问题 ios 可以获取到

| 开发环境              | 版本号       | 项目创建方式 |
|-----------------------|--------------|--------------|
| PC开发环境操作系统    | Mac          |              |
| PC开发环境操作系统版本 | 14.4.1 (23E224) |            |
| HBuilderX类型         | 正式         |              |
| HBuilderX版本号       | 4.15         |              |
| 手机系统              | iOS          |              |
| 手机系统版本号        | iOS 17       |              |
| 手机厂商              | 苹果         |              |
| 手机机型              | iphone12     |              |
| 页面类型              | vue          |              |
| vue版本               | vue2         |              |
| 打包方式              | 云端         |              |
| 项目创建方式          | HBuilderX    |              |

更多关于uni-app 4.15版本 ios高德地图获取定位失败 3.7.3版本可以获取的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

目前用的是vue2 项目 开发的app

更多关于uni-app 4.15版本 ios高德地图获取定位失败 3.7.3版本可以获取的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我也遇到这个问题了,ios17.5.1偶尔出现

同样的问题,升级sdk后只有少数几次能获取到定位,大多数获取失败

uni-app 开发中,使用高德地图获取定位时,可能会遇到不同版本之间的兼容性问题。你提到在 uni-app 4.15 版本中,iOS 平台无法获取定位,而在 3.7.3 版本中可以正常获取。以下是一些可能的原因和解决方案:

1. 检查权限配置

  • iOS 平台:确保在 manifest.json 中正确配置了定位权限。通常需要添加以下权限:
    {
      "app-plus": {
        "distribute": {
          "ios": {
            "permissions": {
              "NSLocationWhenInUseUsageDescription": "需要获取您的位置信息",
              "NSLocationAlwaysUsageDescription": "需要获取您的位置信息"
            }
          }
        }
      }
    }
    
  • Android 平台:同样需要在 manifest.json 中配置定位权限:
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    

2. 检查高德地图 SDK 版本

  • uni-app 4.15 版本可能使用了较新的高德地图 SDK,而 3.7.3 版本使用的是旧版 SDK。某些 API 或功能在新版 SDK 中可能发生了变化或移除了。
  • 你可以在 manifest.json 中指定高德地图的 SDK 版本,尝试回退到旧版 SDK:
    {
      "app-plus": {
        "maps": {
          "amap": {
            "ios": {
              "sdkVersion": "2.6.0" // 指定一个旧版 SDK
            }
          }
        }
      }
    }
    

3. 检查代码实现

  • 确保在代码中正确调用了高德地图的定位 API。例如:
    uni.getLocation({
      type: 'wgs84',
      success: function (res) {
        console.log('当前位置的经度:' + res.longitude);
        console.log('当前位置的纬度:' + res.latitude);
      },
      fail: function (err) {
        console.error('获取定位失败:', err);
      }
    });
回到顶部