更新记录
1.0.3(2024-07-29)
修复stopTrace停止插件方法可能出现的异常崩溃问题;
增加setTraceInterval“设置定位间隔和打包上传间隔”方法;
stopTrace停止插件方法,增加“stopServiceFlag”参数,当stopServiceFlag为true,停止的时候会把轨迹服务杀死(只能在启动app后调用一次,可能在启动app前轨迹服务还在后台运行),stopTrace方法修改回调时机,改为轨迹服务真正停止后才回调;
插件保活功能,修改定时检查重启时间,由5000毫秒改为 7777 * 7 毫秒
1.0.2(2024-07-03)
修复调用getTraceState方法,isTraceStarted 返回异常信息的问题
1.0.1(2024-07-01)
1.0.1
修复当轨迹服务还在运行时,app重新打开后,调用stopTrace停止轨迹方法不会关闭鹰眼轨迹服务的问题 getTraceState获取轨迹状态 增加返回 “isServiceRunning”鹰眼轨迹服务是否在运行 、“isTraceStarted”插件是否已开启轨迹字段。
1.0.0
更新百度鹰眼sdk到v3.2.1版本,新增自定义属性方法,百度鹰眼事件回调方法
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 14.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
1、插件所需账号信息
- 百度应用Ak:需要在百度开放平台注册账号并创建应用,应用启用服务必须勾选“鹰眼轨迹”,在创建的应用信息可查到应用的AK
- 轨迹服务serviceId:参考百度鹰眼文档创建服务https://lbsyun.baidu.com/faq/api?title=android-yingyan/guide/createservice
- entityName:终端设备名,应用每个轨迹账号
2、配置manifest.json中的App原生插件配置中选择本插件,并配置相应的百度ak。
3、代码调用
(1)、申请权限:
判断是否有权限
keepLiveTrace.hasNeedPermissions(e =>{
// success: true ; false true表示调用成功
// "locationPermission": "true" // 是否开启定位权限
// "backgroundLocationPermission": "true", // 是否开启后台定位权限
// "batteryOptimizationPermission": "true", // 是否忽略电池优化权限
})
申请权限:
keepLiveTrace.requestNeedPermissions(e =>{
// success: true ; false true表示调用成功
// "locationPermission": "true" // 是否开启定位权限
// "backgroundLocationPermission": "true", // 是否开启后台定位权限
// "batteryOptimizationPermission": "true", // 是否忽略电池优化权限
})
(2)初始化:
keepLiveTrace.init({
serviceId: "xx", // 服务id
entityName: "xx" // 终端名称
},e =>{
// success: true ; false true表示调用成功
})
(3)开启轨迹服务:
/**
* 开始轨迹定位
*
* locInterval 定位周期, 单位:秒
* defaultPackInterval 打包数据上传百度鹰眼的周期, 单位:秒
* locationMode 定位模式
* Device_Sensors - 仅使用设备GPS定位,(注意使用该模式,如果GPS没有信号将不会有轨迹点,通常室内可能会没有GPS信号)
* High_Accuracy - 高精度定位模式, GPS与网络综合定位
* Battery_Saving - 低功耗定位模式, 仅使用网络定位(WiFi和基站定位)
*/
keepLiveTrace.startTraceWork({
locInterval: 2,
defaultPackInterval: 10,
locationMode: 'High_Accuracy'
}, e =>{
// success: true ; false true表示调用成功
})
(3)关闭轨迹服务:
keepLiveTrace.stopTrace({},e => {
//success:true 表示已停止定位服务。false为失败
})
(4)是否开启轨迹服务
keepLiveTrace.getTraceState({},e => {
//isOpen:是否开启服务,false 为未开启
//success: true ; false true表示调用成功
})
(5)获取当前位置:
添加全局监听回调
var myGlobalEvent = uni.requireNativePlugin('globalEvent');
//返回参数有longitude、latitude、speed、radius、locTime、coordType、floor
plus.globalEvent.addEventListener('onQueryRealTimeLoc', function(e) {
uni.showToast({
title:JSON.stringify(e.longitude)
})
});
调用获取轨迹
keepLiveTrace.queryRealTimeLoc({},e => {
//success: true ; false true表示调用成功
})
(6)轨迹事件回调
事件回调请参考: 在文档的OnTraceListener类: https://bj.bcebos.com/mapopen-pub-androidsdk/yingyan/docs/v_3_2_1/index.html
/**
* event: 事件名,errorNo: 事件执行状态码,0表示成功,message:消息
* event:
* onBindService:绑定轨迹服务回调事件
* onStartTrace:启轨迹服务回调事件
* onStopTrace:停止轨迹服务回调事件
* onStartGather:开启采集回调事件
* onStopGather:停止采集回调事件
* onPushCallback:推送消息回调事件
* onInitBOS:初始化对象存储服务回调事件
* onTraceDataUpload:上传回调事件
*
*/
keepLiveTrace.startTraceWork({
locInterval: 2,
defaultPackInterval: 10,
locationMode: 'High_Accuracy'
}, e =>{
//success: true ; false true表示调用成功
})
(7)添加自定义属性
keepLiveTrace.addCustomTrackAttr({
attrName: '自定义属性', //自定义属性
clearTimeout: 2 // 如果传clearTimeout表示在几秒后轨迹点将不会再上传自定义属性,如果不传,则每个轨迹点都有该自定义属性
}, e =>{
//success: true ; false true表示轨迹点上传成功
// tracePoints: 每次获取轨迹点所包含的自定义属性
})
(8)设置定位间隔和打包上传间隔
注意: 打包上传间隔必须是定位间隔的倍数,不然设置不成功,比如设置locInterval为2,那么 defaultPackInterval必须是 4、6、8等等。
keepLiveTrace.setTraceInterval({
locInterval: "2" // 定位间隔
defaultPackInterval: "10" // 打包上传间隔
}, e =>{
//success: true ; false true表示轨迹点上传成
})