更新记录

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();
    }
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

定位权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件自身不采集任何数据,插件使用的百度定位 SDK采集数据请参考其官方说明:https://lbsyun.baidu.com

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问