更新记录
1.0.2(2024-03-20)
修复了定位不准确的bug
1.0.1(2024-02-18)
无
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 6.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原生插件配置”->”云端插件“列表中删除该插件重新选择
<template>
<view class="content">
<view class="text-area">
<button @click="initBtnClick">init初始化</button>
<button @click="createTerminal">创建一个终端</button>
<button @click="createOneTrankFun">创建一条轨迹</button>
<button @click="startCollectionServe">开启服务</button>
<button @click="startCollectionLocation">开始自动持续采集位置</button>
<button @click="getTrackClientLatestLocation">查询终端返回的实时位置</button><!-- 即查询最新轨迹点 -->
<button @click="historyTrackRequest">查询终端12个小时的内上传的轨迹点</button><!-- 即查询查询历史轨迹 -->
<button @click="queryTrackRequest">查询终端下属于某个轨迹的轨迹点 </button> <!-- 查询终端下的轨迹 -->
<button @click="distanceRequest">查询某个终端在最近12小时内的行驶里程 </button> <!-- 即查询里程 -->
<button @click="queryTerminalIsExist">查询终端是否存在</button>
<button @click="stopCollectionLocation">停止自动持续采集位置</button>
<button @click="stopCollectionServe">停止服务</button>
<!-- 下面的按钮,要在开启采集位置之后,才能调用生效 -->
<button @click="getServiceId">获取服务id</button>
<button @click="getTerminalId">获取终端id</button>
<button @click="getTrackId">获取轨迹id</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
// 可以不用在这里调用,根据自己实际业务情况即可
this.initBtnClick()
},
methods: {
/**
* 在这里先给大家讲解一下基本概念:
* 1.服务id: 大家必须要去高德地图官网注册,猎鹰sdk不提供创建服务方法,服务(service id)的创建请参考猎鹰rest api接口https://lbs.amap.com/api/t rack/lieying-kaifa/api/service,是Web服务类型的key,不是Web端(JS API),好多小伙伴这里踩坑。切记,申请的服务id必须是web服务端的key
*
* 2.下面用到的key:必须要去官网注册(下面的key传的是anroid申请的key),几乎使用的插件不让传key的都是默认用开发者的,
* 然后后续要收高额费用才能用,所以一定要传自己的key,不给传key的都是耍流氓
*
* 3.然后可以直接调用方法,下面的完全足够开发者使用了
*
* // 比喻一下
* 4. serviceId 就是相当于一个公司,termianlId终端id就是司机的手机终端,轨迹id就是:一个司机的手机,出车的时候,可以跑很多条轨迹
*
*/
initBtnClick() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.init({
/**
* 高德的key,基本所有的很多插件,估计不让传自己的key,默认用开发者的,
* 然后后续要收高额费用才能用,所以一定要传自己的key,不给传key的都是耍流氓
*
* key: 自己去高德申请的key,超级简单(android类型的key)
* serviceId:web服务 申请的id
*/
key:'9919f09ff93354d6483a6ef8355d43a8',
tiem:2, // 2秒采集一次位置,
upLoadTime: 10, //10秒之后把采集到的点上传一次位置给服务器
storageSize:20, // 单位为Mb,如果断网,那么采集到的数据将放本地缓存,有网的的时候,自动上传给服务器
locationMode: 1, // 1 采用高精度GPS定位和网络定位,gps优先;2 是只使用GPS定位; 3 只使用网络定位
},e =>{
uni.showToast({
// 返回终端的id 和名字
icon:'none',
title:JSON.stringify(e),
duration:3000
})
})
},
// 创建一个终端(相当于一个公司的里面司机的一个手机终端)
createTerminal() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.createTerminal({
serviceId:1018806,
// 一些参数
termianlName:'终端名字'
}, e => {
uni.showToast({
// 返回终端的id 和名字
icon:'none',
title:JSON.stringify(e),
duration:3000
})
})
},
// 创建一条轨迹,并且返回id,将来采集的点都是自动放在这个轨迹上面
createOneTrankFun() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.createOneTrankFun({
// 一些参数
serviceId:1018806, // 服务id
terminalId:839147094 // 终端id
}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 这里能拿到轨迹id
duration:3000
})
})
},
// 开启服务
startCollectionServe() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.startCollectionServe({
serviceId:1018806, // 服务id
terminalId:839147094, // 终端id
//轨迹id; 直接传 -1 表示开启散点上传,也就是只上传到终端,不用上传到指定一条轨迹上面,那么下面用到trackid都不用传trackId
trackId:30,
}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 拿到是否开启的结果
duration:3000
})
})
},
// 开始采集位置
startCollectionLocation() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.startCollectionLocation({}, e=>{
uni.showToast({
icon:'none',
title:JSON.stringify(e),
duration:3000
})
})
},
// /*查询终端的实时位置*/
getTrackClientLatestLocation() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.getTrackClientLatestLocation({
// 一些参数
serviceId:1018806, // 服务id
terminalId:839147094, // 终端id
}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回终端的实时位置
duration:3000
})
})
},
// 下面的代码查询出某个终端在最近12小时内上传的所有轨迹点:
historyTrackRequest() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.historyTrackRequest({
// 一些参数
serviceId:1018806, // 服务id
terminalId:839147094, // 终端id
time: 12, // 12小时内
bindRoad:0, // 不绑路
distance:0, // 不做距离补偿
km:5000, // 距离补偿阈值,只有超过5km的点才启用距离补偿
orderBy:0, // 由旧到新排序
page:1, // 返回第1页数据
size:100, // 一页不超过100条
}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回终端的实时位置
duration:3000
})
})
},
// 查询终端下属于某个轨迹的轨迹点
queryTrackRequest() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.queryTrackRequest({
serviceId:1018806, // 服务id
terminalId:839147094, // 终端id
trackId: -1, // 轨迹id,传-1表示查询该所有轨迹
time: 12, // 12小时内
denoising:0, // 不启用去噪
bindRoad:0, // 不绑路
precision:0, // 不进行精度过滤
// DriveMode.DRIVING, // 当前仅支持驾车模式
distance:0, // 不做距离补偿
km:5000, // 距离补偿阈值,只有超过5km的点才启用距离补偿
trackInfo: 1, // 1表示结果应该包含轨迹点信息
page:1, // 返回第1页数据
size:100, // 一页不超过100条
}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回终端的实时位置
duration:3000
})
})
},
// 查询某个终端在最近12小时内的行驶里程:
distanceRequest() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.distanceRequest({
serviceId:1018806, // 服务id
terminalId:839147094, // 终端id
time: 12, // 12小时内
trackId: -1, // 轨迹id,传-1表示包含散点在内的所有轨迹点
}, e=>{
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回终端的实时位置
duration:3000
})
})
},
// 查询某个终端是否存在
queryTerminalIsExist() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.queryTerminalIsExist({
serviceId:1018806, // 服务id
terminalName:"myTrack", // 终端名字
}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回终端的实时位置
duration:3000
})
})
},
// 停止采集
stopCollectionLocation() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.stopCollectionLocation({}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回结果
duration:3000
})
})
},
// 停止服务 和开启时传入的track参数一致
stopCollectionServe() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.stopCollectionServe({
serviceId:1018806, // 服务id
terminalId:839147094, // 终端id
//轨迹id; 直接传 -1 表示开启散点上传,也就是只上传到终端,不用上传到指定一条轨迹上面,那么下面用到trackid都不用传trackId
trackId:30,
}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回结果
duration:3000
})
})
},
// 获取服务id
getServiceId() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.getServiceId({}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回终端的实时位置
duration:3000
})
})
},
// 获取终端id
getTerminalId() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.getTerminalId({}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回终端的实时位置
duration:3000
})
})
},
// 获取轨迹id
getTrackId() {
const msf = uni.requireNativePlugin('msf-gaodetrack')
msf.getTrackId({}, e => {
uni.showToast({
icon:'none',
title:JSON.stringify(e), // 返回终端的实时位置
duration:3000
})
})
},
}
}
</script>
插件方法和参数
调用插件方法名字 | 说明 | 传递参数 |
---|---|---|
initBtnClick() | init初始化 | 看上面代码注释 |
createTerminal() | 创建一个终端 | 看上面代码注释 |
createOneTrankFun | 创建一条轨迹 | 看上面代码注释 |
startCollectionServe() | 开启服务 | 看上面代码注释 |
startCollectionLocation() | 开始自动持续采集位置 | 看上面代码注释 |
getTrackClientLatestLocation() | 查询终端返回的实时位置 | 看上面代码注释 |
historyTrackRequest() | 查询终端12个小时的内上传的轨迹点 | 看上面代码注释 |
queryTrackRequest() | 查询终端下属于某个轨迹的轨迹点 | 看上面代码注释 |
distanceRequest() | 查询某个终端在最近12小时内的行驶里程 | 看上面代码注释 |
queryTerminalIsExist() | 查询终端是否存在 | 看上面代码注释 |
stopCollectionLocation() | 停止自动持续采集位置 | 看上面代码注释 |
stopCollectionServe() | 停止服务 | 看上面代码注释 |
getServiceId() | 查询终端12个小时的内上传的轨迹点 | 看上面代码注释 |
getTerminalId() | 获取终端id | 看上面代码注释 |
getTrackId() | 获取轨迹id | 看上面代码注释 |