uni-app ios18 使用uni.chooseLocation 报错Geolocation Error: code -1504; message - Not Support CoordsType

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

uni-app ios18 使用uni.chooseLocation 报错Geolocation Error: code -1504; message - Not Support CoordsType
在使用 uni.getLocation,当 typegcj02 时,在 iOS18 上报错:

Gelocation Error: code - -1504; message - Not Support CoordsType

修改成 wgs84 可以正常获取定位使用,已解决。

现在的问题

使用 uni.chooseLocation,仍然报 Gelocation Error: code - -1504; message - Not Support CoordsType

查询了文档,API 上没有可修改 type 的选项,这个问题要怎么解决呢?


2 回复

高德地图的


在处理 uni-app 中使用 uni.chooseLocation 方法在 iOS 18 上遇到 Geolocation Error: code -1504; message - Not Support CoordsType 的问题时,我们首先需要了解这个错误代码通常意味着某些地理定位功能或坐标类型不被支持。uni.chooseLocation 是用于调用原生地图选择位置的 API,它在不同平台上可能有不同的实现细节和限制。

在 iOS 18 上,Apple 可能对位置服务的访问权限或坐标系统的使用进行了更新,导致某些类型的坐标或位置服务不被支持。虽然具体细节可能依赖于 Apple 的文档更新,但我们可以通过调整调用参数或处理异常来尝试解决这个问题。

以下是一个基本的 uni-app 代码示例,展示了如何使用 uni.chooseLocation 并处理可能出现的错误:

// 调用uni.chooseLocation
uni.chooseLocation({
    success: function (res) {
        console.log('选择位置成功:', res);
        // 处理成功响应,如获取到的位置信息
    },
    fail: function (err) {
        console.error('选择位置失败:', err);
        // 处理失败情况,特别是针对iOS 18的错误处理
        if (err.code === -1504) {
            // 特定错误代码处理
            uni.showToast({
                title: '当前iOS版本不支持所选的坐标类型',
                icon: 'none'
            });
            // 可以考虑降级使用其他方式获取位置,如uni.getLocation
        } else {
            // 其他错误代码处理
            uni.showToast({
                title: '选择位置失败,请重试',
                icon: 'none'
            });
        }
    }
});

// 备用方案:使用uni.getLocation获取位置(可能不包含地图界面选择)
function fallbackGetLocation() {
    uni.getLocation({
        type: 'gcj02', // 根据需要选择合适的坐标系
        success: function (location) {
            console.log('获取位置成功(备用方案):', location);
        },
        fail: function (error) {
            console.error('获取位置失败(备用方案):', error);
        }
    });
}

在这个例子中,我们首先尝试使用 uni.chooseLocation。如果失败且错误代码为 -1504,我们显示一个错误提示,并调用 fallbackGetLocation 函数作为备用方案,该函数使用 uni.getLocation 来获取用户位置。请注意,uni.getLocation 不提供地图界面供用户选择位置,但它可以返回当前设备的位置信息。

由于 -1504 错误代码具体含义可能随 iOS 版本变化,建议持续关注 Apple 和 DCloud 的官方文档,以获取最新的解决方案和最佳实践。

回到顶部