简体中文
监听实时地理位置变化事件,需结合 uni.startLocationUpdate
或 uni.startLocationUpdateBackground
使用。
注意
Web平台本API之前调用了腾讯地图的gcj02坐标免费转换接口,该接口从2024年7月18日起被腾讯逐步下线,导致老版本中本API无法使用。请立即升级到 uni-app 4.24版。
升级后注意:
如果运行在微信浏览器中,可以使用微信的jssdk的定位能力。这个是微信向腾讯地图申请的key,开发者无需配置自己的key。
地图厂商的商业授权较贵,如需购买,请点击获取优惠。
平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 快手小程序 | 京东小程序 | 元服务 | 小红书小程序 |
---|---|---|---|---|---|---|---|---|---|---|
√(3.6.8+) | √(3.6.8+) | √ | x | √ | √ | x | √ | x | √ | √ |
HarmonyOS Next 兼容性
HarmonyOS Next |
---|
HBuilderX 4.25 |
FUNCTION CALLBACK 参数
参数名 | 类型 | 说明 | 平台差异说明 |
---|---|---|---|
latitude | Number | 纬度,范围为 -90~90,负数表示南纬。 | |
longitude | Number | 经度,范围为 -180~180,负数表示西经。 | |
speed | Number | 速度 (m/s) | H5不支持 |
accuracy | number | 位置的精确度 | |
altitude | number | 高度 (m) | H5不支持 |
verticalAccuracy | number | 垂直精度 (m) | 抖音小程序、快手小程序 Android 无法获取,返回 0 |
horizontalAccuracy | number | 水平精度 (m) | 抖音小程序不支持 |
city | string | 定位到的城市信息 | 百度小程序、抖音小程序(iOS 不支持) |
cityCode | String | 城市编码 | 百度小程序 |
street | String | 街道名称 | |
city | String | 城市名称 | 百度小程序 |
country | String | 国家 | 百度小程序 |
countryCode | String | 国家代码 | 百度小程序 |
province | String | 省份 | 百度小程序 |
streetNumber | String | 街道号码 | 百度小程序 |
district | String | 区 | 百度小程序 |
isFullAccuracy | Boolean | 是不是精确定位信息 | 百度小程序 |
altitudeAccuracy | Number | 海拔的精确度信息 | App |
注意
uni.stopLocationUpdate
方法取消监听。微信小程序
若使用该接口,需要在 app.json 中进行声明,否则将无法正常使用该接口,详情抖音小程序
调用此 API 需要申请高精度权限,具体信息见高精度定位运营规范。HarmonyOS Next平台
调用此 API 需要申请定位权限ohos.permission.APPROXIMATELY_LOCATION
、ohos.permission.LOCATION
,需自行在项目中配置权限。示例
uni.onLocationChange(function (res) {
console.log('纬度:' + res.latitude);
console.log('经度:' + res.longitude);
});
移除实时地理位置变化事件的监听函数。
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 快手小程序 | 京东小程序 |
---|---|---|---|---|---|---|---|---|
√(3.6.8+) | √(3.6.8+) | √ | x | √ | √ | x | √ | x |
HarmonyOS Next 兼容性
HarmonyOS Next |
---|
HBuilderX 4.25 |
注意:App端及H5端callback参数为必填。
FUNCTION CALLBACK 参数
参数名 | 类型 | 说明 | 平台差异说明 |
---|---|---|---|
latitude | number | 纬度,范围 [-90, 90],负数表示南纬 | 快手小程序 |
longitude | number | 经度,范围 [-180, 180],负数表示西经 | 快手小程序 |
speed | number | 速度 (m/s) | 快手小程序 |
accuracy | number | 位置的精确度 | 快手小程序 |
altitude | number | 高度 (m) | 快手小程序 |
verticalAccuracy | number | 垂直精度 (m)(Android 无法获取,返回 0) | 快手小程序 |
horizontalAccuracy | number | 水平精度 (m) | 快手小程序 |
监听持续定位接口返回失败时触发。
平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 快手小程序 | 京东小程序 |
---|---|---|---|---|---|---|---|---|
√(3.6.8+) | √(3.6.8+) | √ | x | x | √ | x | x | x |
HarmonyOS Next 兼容性
HarmonyOS Next |
---|
HBuilderX 4.25 |
FUNCTION CALLBACK 参数
参数名 | 类型 | 说明 | 平台差异说明 |
---|---|---|---|
errCode | Number | 错误 | 微信小程序 |
errMsg | String | 错误信息 | 抖音小程序 |
取消注册位置更新错误回调。
平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 快手小程序 | 京东小程序 |
---|---|---|---|---|---|---|---|---|
√(3.6.8+) | √(3.6.8+) | √ | x | x | √ | x | x | x |
HarmonyOS Next 兼容性
HarmonyOS Next |
---|
HBuilderX 4.25 |
注意:App端及H5端callback参数为必填。
FUNCTION CALLBACK 参数
无返回值。
开启应用进入前台时接收位置消息。
平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 快手小程序 | 京东小程序 |
---|---|---|---|---|---|---|---|---|
√(3.6.8+) | √(3.6.8+) | √ | x | √ | √ | x | √ | x |
HarmonyOS Next 兼容性
HarmonyOS Next |
---|
HBuilderX 4.25 |
OBJECT 参数
参数名 | 类型 | 必填 | 说明 | 平台差异说明 |
---|---|---|---|---|
type | String | 否 | 指定坐标系类型,可以是 wgs84 或 gcj02 | 微信小程序、抖音小程序 |
success | Function | 否 | 接口调用成功的回调函数 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | |
needFullAccuracy | Boolean | 否 | 针对 iOS14/Android12 及以上的新特性,其他情况本参数忽略。默认情况宿主是精确定位就返回精确定位信息。传入 true 会强制使用精确定位信息,iOS14/Android12 及以上如果没有精确定位权限,会弹出精确定位授权弹框。 | 百度小程序 |
示例
uni.startLocationUpdate({
success: res => console.log('开启应用接收位置消息成功'),
fail: err => console.error('开启应用接收位置消息失败:', err),
complete: msg => console.log('调用开启应用接收位置消息 API 完成')
});
关闭监听实时位置变化,前后台都停止消息接收。
平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 快手小程序 | 京东小程序 |
---|---|---|---|---|---|---|---|---|
√(3.6.8+) | √(3.6.8+) | √ | x | √ | √ | x | √ | x |
HarmonyOS Next 兼容性
HarmonyOS Next |
---|
HBuilderX 4.25 |
OBJECT 参数
参数名 | 类型 | 必填 | 说明 | 平台差异说明 |
---|---|---|---|---|
success | Function | 否 | 接口调用成功的回调函数 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
开始监听实时地理位置信息变化事件,应用进入前后台时均接收实时地理位置信息。
平台差异说明
App | HarmonyOS Next | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 快手小程序 | 京东小程序 |
---|---|---|---|---|---|---|---|---|---|
x | HBuilderX 4.31 | x | √ | x | x | x | x | √ | x |
OBJECT 参数
参数名 | 类型 | 必填 | 说明 | 平台差异说明 |
---|---|---|---|---|
type | String | 否 | 指定坐标系类型,可以是 wgs84 或 gcj02 | 微信小程序、抖音小程序 |
success | Function | 否 | 接口调用成功的回调函数 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
注意
HarmonyOS Next平台
调用此 API 需要申请定位权限ohos.permission.APPROXIMATELY_LOCATION
、ohos.permission.LOCATION
及后台定位权限ohos.permission.LOCATION_IN_BACKGROUND
,需自行在项目中配置权限。使用三方定位或者地图服务,需向服务提供商(如:高德地图、百度地图、腾讯地图、谷歌地图)申请商业授权和缴纳费用(5万/年)。
DCloud为开发者争取了福利,可优惠获取高德、腾讯的商业授权。如有需求请发邮件到bd@dcloud.io
(注明你的公司名称、应用介绍、HBuilder账户);你也可以直接通过uni-im
发起在线咨询,在线咨询地址:DCloud地图服务专员。
详见:https://uniapp.dcloud.net.cn/tutorial/app-geolocation.html#lic