更新记录
1.0.5(2025-06-09)
优化鸿蒙端定位配置参数设置。
1.0.4(2025-05-05)
优化插件Android端保活服务接口。
1.0.3(2025-05-05)
修复插件Android端保活接口导致打包失败问题。
查看更多平台兼容性
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 TXLoc from "@/uni_modules/Lizii-TXLoc";
export default {
}
</script>
2. 隐私合规检查接口(必须)
<script>
//定位UTS插件
import * as TXLoc from "@/uni_modules/Lizii-TXLoc";
export default {
onLoad() {
//隐私合格检查接口
let isAgree = true;
TXLoc.setUserAgreePrivacy(isAgree);
}
}
</script>
3. 设置key(必须)
<script>
//定位UTS插件
import * as TXLoc from "@/uni_modules/Lizii-TXLoc";
export default {
onLoad() {
//隐私合格检查接口
let isAgree = true;
TXLoc.setUserAgreePrivacy(isAgree);
//设置apikey
let apiKey = "xxx";
TXLoc.setApiKey(apiKey);
}
}
</script>
4. 检查定位服务是否打开
//检查定位服务是否打开
var enable = TXLoc.locationServicesEnabled();//true:定位服务打开 false:定位服务关闭
5. 进入打开定位服务界面
//进入打开定位服务界面
TXLoc.openLocationSetting();
6. 检查定位权限
//检查定位权限是否授权,并申请定位权限
TXLoc.checkLocationPermission(function(res){
console.log(res);
if (res.result == true) {
} else {
//打开app设置界面 设置始终定位权限
TXLoc.openAppSetting();
}
});
7. 检查始终允许后台定位权限
//检查始终允许后台定位权限
TXLoc.checkAlwaysLocationPermission(function(res){
console.log(res);
if (res.result == true) {
} else {
//打开app设置界面 设置始终允许后台定位
TXLoc.openAppSetting();
}
});
8. 打开app设置界面
//打开app设置界面
TXLoc.openAppSetting();
9. 单次定位
//单次定位
TXLoc.getLocation({
options:{
requestLevel:1,//请求级别,默认0, 0=包含经纬度 1=包含经纬度, 位置名称, 位置地址 3=包含经纬度,位置所处的中国大陆行政区划
singleLocationTimeout:10000//单次定位超时时间,单位毫秒, 默认10000毫秒
},
onLocationSuccess: (location) => {
console.log(location);
//requestLevel=0,返回以下信息
let latitude = location.latitude;//纬度
let longitude = location.longitude;//经度
let altitude = location.altitude;//海拔
let speed = location.speed;//速度
let bearing = location.bearing;//方向
let time = locationa.time;//时间
//requestLevel=1,返回以下信息
let name = location.name;//名称
let address = locationa.address;//地址
//requestLevel=3,返回以下信息
let nation = location.nation;//国家
let province = locationa.province;//省
let city = locationa.city;//市
let district = locationa.district;//区
let town = locationa.town;//镇
let village = locationa.village;//村
let street = locationa.street;//街道
let streetNo = locationa.streetNo;//门号
},
onLocationFail: (errorCode, errorInfo) => {
console.log(errorCode);//错误码
console.log(errorInfo);//错误消息
}
});
10. 开启持续定位
//开启持续定位
TXLoc.startUpdatingLocation({
options:{
//coordinateType:0,//0=GCJ02 1=WGS84
requestLevel:0,//请求级别,默认0, 0=包含经纬度 1=包含经纬度, 位置名称, 位置地址 3=包含经纬度,位置所处的中国大陆行政区划
allowsBackgroundLocationUpdates:true,//是否开启后台定位,仅iOS和鸿蒙支持
interval:5000//定位时间间隔,单位毫秒
},
onLocationChanged: (location) => {
console.log(location);
//requestLevel=0,返回以下信息
let latitude = location.latitude;//纬度
let longitude = location.longitude;//经度
let altitude = location.altitude;//海拔
let speed = location.speed;//速度
let bearing = location.bearing;//方向
let time = locationa.time;//时间
//requestLevel=1,返回以下信息
let name = location.name;//名称
let address = locationa.address;//地址
//requestLevel=3,返回以下信息
let nation = location.nation;//国家
let province = locationa.province;//省
let city = locationa.city;//市
let district = locationa.district;//区
let town = locationa.town;//镇
let village = locationa.village;//村
let street = locationa.street;//街道
let streetNo = locationa.streetNo;//门号
},
onLocationFail: (errorCode, errorInfo) => {
console.log(errorCode);//错误码
console.log(errorInfo);//错误消息
}
});
11. 停止持续定位
//停止持续定位
TXLoc.stopUpdatingLocation();
12. 开启后台定位任务,该接口仅Android和鸿蒙支持
startBackgroundLocationTask() {
if (uni.getSystemInfoSync().platform == 'android') {
/*开启Android保活步骤:
1、定位授权+始终允许后台定位
2、忽略电池优化
3、开启保活服务(通知栏常驻)
4、部分机型需要电池设置里面,选上 待机时始终保持网络连接 (需要手动设置)
5、部分机型需要需要设置app打开自启动或允许后台实时活动 (需要手动设置)
*/
//检查是否允许通知,oppo vivo等部分手机默认不允许通知
if (TXLoc.areNotificationsEnabled()) {
//是否忽略电池优化,vivo部分手机需要忽略电池优化,保活才不被杀掉
if (TXLoc.isIgnoringBatteryOptimizations()) {
//开启保活服务(通知栏常驻)
TXLoc.enableBackgroundLocation({
contentTitle:"默认app名称",
contentText:"正在后台运行"
});
} else {
//请求忽略电池优化
TXLoc.requestIgnoreBatteryOptimizations();
}
} else {
//打开设置通知
TXLoc.openNotifySetting();
}
} else if (uni.getSystemInfoSync().platform == 'harmonyos') {
//开启后台定位任务
//如需在后台定位(后台定位需后台定位、后台运行权限),则要在应用切入后台前调用开启后台定位任务,
TXLoc.startBackgroundLocationTask();
}
}
13. 停止后台定位任务,该接口仅Android和鸿蒙支持
stopBackgroundLocationTask() {
if (uni.getSystemInfoSync().platform == 'android') {
//停止后台保活定位服务
var removeNotification = true;//是否移除通知
TXLoc.disableBackgroundLocation(removeNotification);
} else if (uni.getSystemInfoSync().platform == 'harmonyos') {
//停止后台定位任务
//回到前台可以停止后台任务
TXLoc.stopBackgroundLocationTask();
}
}