更新记录
1.0.1(2025-06-15)
优化参数设置。
1.0.0(2025-06-15)
新版发布。
平台兼容性
uni-app
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
√ |
√ |
- |
- |
- |
- |
5.0 |
12 |
√ |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x
Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
- |
- |
5.0 |
12 |
√ |
- |
百度定位UTS插件接口文档
1. 百度定位UTS插件
<script>
//百度定位UTS插件
import * as BaiduLoc from "@/uni_modules/Lizii-BDLoc";
export default {
}
</script>
2. 隐私合规检查接口(必须)
<script>
//定位UTS插件
import * as BaiduLoc from "@/uni_modules/Lizii-BDLoc";
export default {
onLoad() {
//隐私合格检查接口
let isAgree = true;
BaiduLoc.setAgreePrivacy(isAgree);
}
}
</script>
3. 设置key(必须)
<script>
//定位UTS插件
import * as BaiduLoc from "@/uni_modules/Lizii-BDLoc";
export default {
onLoad() {
//隐私合格检查接口
let isAgree = true;
BaiduLoc.setAgreePrivacy(isAgree);
//设置apikey
let apiKey = "xxx";
BaiduLoc.setApiKey(apiKey);
}
}
</script>
4. 检查定位服务是否打开
//检查定位服务是否打开
var enable = BaiduLoc.locationServicesEnabled();//true:定位服务打开 false:定位服务关闭
5. 进入打开定位服务界面
//进入打开定位服务界面
BaiduLoc.openLocationSetting();
6. 检查定位权限
//检查定位权限是否授权,并申请定位权限
BaiduLoc.checkLocationPermission(function(res){
console.log(res);
if (res.result == true) {
} else {
//打开app设置界面 设置始终定位权限
BaiduLoc.openAppSetting();
}
});
7. 检查始终允许后台定位权限
//检查始终允许后台定位权限
BaiduLoc.checkAlwaysLocationPermission(function(res){
console.log(res);
if (res.result == true) {
} else {
//打开app设置界面 设置始终允许后台定位
BaiduLoc.openAppSetting();
}
});
8. 打开app设置界面
//打开app设置界面
BaiduLoc.openAppSetting();
9. 单次定位
//单次定位
BaiduLoc.getLocation({
coorType: BaiduLoc.BaiduLocCoorTypeGCJ02,
isNeedAddress:true,//设置是否需要地址信息,默认不需要
onLocationSuccess: (location) => {
console.log(location);
let latitude = location.latitude;//纬度
let longitude = location.longitude;//经度
let altitude = location.altitude;//海拔
let speed = location.speed;//速度
let bearing = location.bearing;//方向
let time = locationa.time;//时间
//isNeedAddress=true,返回以下信息
let address = locationa.rgcData.address;//地址
let country = location.rgcData.country;//国家
let countryCode = location.rgcData.countryCode;//国家编码
let province = locationa.rgcData.province;//省
let city = locationa.rgcData.city;//市
let cityCode = locationa.rgcData.cityCode;//城市编码
let district = locationa.rgcData.district;//区
let adCode = locationa.rgcData.adCode;//行政区划编码
let town = locationa.rgcData.town;//镇
let street = locationa.rgcData.street;//街道
let streetNumber = locationa.rgcData.streetNumber;//街道号码
let locationDescribe = locationa.rgcData.locationDescribe;//位置语义化信息
let poiList = locationa.rgcData.poiList;//位置语义化结果的属性,该定位点周围的poi列表信息
let poiRegion = locationa.rgcData.poiRegion;//位置语义化结果的定位点在什么地方周围的描述信息
},
onLocationError: (error) => {
console.log(error.errorCode);//错误码
console.log(error.errorMsg);//错误消息
}
});
10. 开启持续定位
//开启持续定位
BaiduLoc.startUpdatingLocation({
coorType: BaiduLoc.BaiduLocCoorTypeGCJ02,
isNeedAddress:false,//设置是否需要地址信息,默认不需要
allowsBackgroundLocationUpdates:true,//是否允许后台定位,仅iOS支持
distanceFilter:0,//设置连续定位的距离间隔, 默认0米, 仅iOS和HarmonyNext支持
interval:5000,//定位时间间隔,单位毫秒, 仅Android和HarmonyNext支持
onLocationChanged: (location) => {
console.log(location);
let latitude = location.latitude;//纬度
let longitude = location.longitude;//经度
let altitude = location.altitude;//海拔
let speed = location.speed;//速度
let bearing = location.bearing;//方向
let time = locationa.time;//时间
//isNeedAddress=true,返回以下信息
let address = locationa.rgcData.address;//地址
let country = location.rgcData.country;//国家
let countryCode = location.rgcData.countryCode;//国家编码
let province = locationa.rgcData.province;//省
let city = locationa.rgcData.city;//市
let cityCode = locationa.rgcData.cityCode;//城市编码
let district = locationa.rgcData.district;//区
let adCode = locationa.rgcData.adCode;//行政区划编码
let town = locationa.rgcData.town;//镇
let street = locationa.rgcData.street;//街道
let streetNumber = locationa.rgcData.streetNumber;//街道号码
let locationDescribe = locationa.rgcData.locationDescribe;//位置语义化信息
let poiList = locationa.rgcData.poiList;//位置语义化结果的属性,该定位点周围的poi列表信息
let poiRegion = locationa.rgcData.poiRegion;//位置语义化结果的定位点在什么地方周围的描述信息
},
onLocationError: (error) => {
console.log(error.errorCode);//错误码
console.log(error.errorMsg);//错误消息
}
});
11. 停止持续定位
//停止持续定位
BaiduLoc.stopUpdatingLocation();
12. 开启后台定位任务,该接口仅Android和鸿蒙支持
startBackgroundLocationTask() {
if (uni.getSystemInfoSync().platform == 'android') {
/*开启Android保活步骤:
1、定位授权+始终允许后台定位
2、忽略电池优化
3、开启保活服务(通知栏常驻)
4、部分机型需要电池设置里面,选上 待机时始终保持网络连接 (需要手动设置)
5、部分机型需要需要设置app打开自启动或允许后台实时活动 (需要手动设置)
*/
//检查是否允许通知,oppo vivo等部分手机默认不允许通知
if (BaiduLoc.areNotificationsEnabled()) {
//是否忽略电池优化,vivo部分手机需要忽略电池优化,保活才不被杀掉
if (BaiduLoc.isIgnoringBatteryOptimizations()) {
//开启保活服务(通知栏常驻)
BaiduLoc.enableBackgroundLocation({
contentTitle:"默认app名称",
contentText:"正在后台运行"
});
} else {
//请求忽略电池优化
BaiduLoc.requestIgnoreBatteryOptimizations();
}
} else {
//打开设置通知
BaiduLoc.openNotifySetting();
}
} else if (uni.getSystemInfoSync().platform == 'harmonyos') {
//开启后台定位任务
//如需在后台定位(后台定位需后台定位、后台运行权限),则要在应用切入后台前调用开启后台定位任务,
BaiduLoc.startContinuousTask();
}
}
13. 停止后台定位任务,该接口仅Android和鸿蒙支持
stopBackgroundLocationTask() {
if (uni.getSystemInfoSync().platform == 'android') {
//停止后台保活定位服务
var removeNotification = true;//是否移除通知
BaiduLoc.disableBackgroundLocation(removeNotification);
} else if (uni.getSystemInfoSync().platform == 'harmonyos') {
//停止后台定位任务
//回到前台可以停止后台任务
BaiduLoc.stopContinuousTask();
}
}