更新记录

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:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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表示轨迹点上传成
  })

隐私、权限声明

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

1、精确定位权限,用于访问GPS数据。 2、存储权限,用于写入对象存储BOS数据。 3、前台服务权限,用于前台服务通知,Android 8.0之后需动态申请。 4、后台定位权限,用于后台定位,Android 10.0 之后需动态申请

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

本插件使用的百度鹰眼SDKv3.2.1版本会采集数据,采集地理位置信息转换成百度坐标系,并直接上传到百度鹰眼服务器上。详情可参考:https://lbsyun.baidu.com/index.php?title=open/privacy

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

暂无用户评论。

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