uni-app ios18 使用uni.chooseLocation 报错Geolocation Error: code -1504; message - Not Support CoordsType
uni-app ios18 使用uni.chooseLocation 报错Geolocation Error: code -1504; message - Not Support CoordsType
在使用 uni.getLocation
,当 type
为 gcj02
时,在 iOS18 上报错:
Gelocation Error: code - -1504; message - Not Support CoordsType
修改成 wgs84
可以正常获取定位使用,已解决。
现在的问题
使用 uni.chooseLocation
,仍然报 Gelocation Error: code - -1504; message - Not Support CoordsType
。
查询了文档,API 上没有可修改 type
的选项,这个问题要怎么解决呢?
高德地图的
在处理 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 的官方文档,以获取最新的解决方案和最佳实践。