调用start函数,传入参数如下:
sendUpUrl:上送服务器的接口地址,请求方式为post,isSendUp为ture时必传;
token:可选,令牌,根据服务端要求;
intervalTime:可选,间隔定位时间,单位毫秒(ms),默认2000ms;
isSendUp:是否需要上送到业务服务器,提交服务器的请求方式为post请求;
customParams:自定义上送到服务端的字段和值,使用标准的json对象。例如:customParams: {"key1":"value1","key2":"value2","key3":12};
isShowNotify: true,//是否在通知栏显示"定位中..."的提示,主动调取stop()停止定位,通知栏提示也会自动消失;
notifyTip: '工作中...',//通知栏提示信息,默认为"定位中...";
isPermanent: true,//是否常驻通知栏(常驻通知栏,点击不会取消),isShowNotify参数为true时才有效;
isStartApp: false点击通知栏定位提示是否启动app,默认启动。传入false时,点击通知栏提示将无任何反应。
isSendUp为true时上送服务端的数据说明(备注:只有调用者设置了isSendUp为true,以及sendUpUrl不为空且是正确的可用的接口地址,才会通过接口地址上送到调用者所指定的服务端)
固定参数:
gpsX:经度;
gpsY:纬度;
address:地位位置;
timestamp:定位成功回调的时间戳,为客户端时间,不建议直接将此时间入库,而应该使用服务器时间。
altitude://海拔高度,必须是GPS定位,而且不一定能获取到,试了华为好些手机获取不到,尝试使用原生android GPS定位api获取,偶尔能够获取到,但是太慢,目前此字段的值基本都为0,等找到解决办法再更新。
country:国家
province:省份
city:市
cityCode:城市编码
district:区
adCode:区域编码
networkType:网络类型
自定义参数:
即调用者通过customParams字段传入的自定义参数。
数据实例
{"adCode":"530103","address":"云南省昆明市盘龙区花园路20号靠近江东双语幼儿园","altitude":0,"city":"昆明市","cityCode":"0871","country":"中国","district":"盘龙区","gpsX":102.739402,"gpsY":25.086172,"key1":"value1","key2":"value2","key3":12,"networkType":"4G","province":"云南省","timestamp":1590292280946}
结果回调:
回调中一定存在code和msg字段,根据code的值来做进一步的业务;
code值为字符串:"0"-定位成功;"-1"-定位失败;
msg为响应消息,定位成功时,msg返回的是定位结果的json字段串;
sendContent为上送服务端的数据,只有定位成功且isSendUp为true时才会回调次字段,否则请从msg中获取定位成功的数据。
成功回调到uniapp的数据实例
{"msg":"{\"accuracy\":100,\"adCode\":\"530103\",\"address\":\"云南省昆明市盘龙区铂金大道351号靠近兴业银行(昆明云南映象支行)\",\"altitude\":0,\"aoiName\":\"云南映象南区\",\"bearing\":0,\"bearingAccuracyDegrees\":0,\"buildingId\":\"\",\"city\":\"昆明市\",\"cityCode\":\"0871\",\"complete\":false,\"country\":\"中国\",\"description\":\"在兴业银行(昆明云南映象支行)附近\",\"district\":\"盘龙区\",\"elapsedRealtimeNanos\":0,\"errorCode\":0,\"errorInfo\":\"success\",\"extras\":{\"empty\":false,\"parcelled\":false,\"size\":0},\"fixLastLocation\":false,\"floor\":\"\",\"fromMockProvider\":false,\"gpsAccuracyStatus\":-1,\"latitude\":25.084339,\"locationDetail\":\"#csid:948438c050f243e19b631091982a5c28\",\"locationQualityReport\":{\"adviseMessage\":\"\",\"gPSSatellites\":0,\"gPSStatus\":0,\"netUseTime\":110,\"networkType\":\"4G\",\"wifiAble\":true},\"locationType\":5,\"longitude\":102.751341,\"mock\":false,\"offset\":true,\"poiName\":\"兴业银行(昆明云南映象支行)\",\"provider\":\"lbs\",\"province\":\"云南省\",\"road\":\"铂金大道\",\"satellites\":0,\"speed\":0,\"speedAccuracyMetersPerSecond\":0,\"street\":\"铂金大道\",\"streetNum\":\"351号\",\"time\":1590455690084,\"verticalAccuracyMeters\":0}","code":"0","sendContent":"{\"adCode\":\"530103\",\"address\":\"云南省昆明市盘龙区铂金大道351号靠近兴业银行(昆明云南映象支行)\",\"altitude\":0,\"city\":\"昆明市\",\"cityCode\":\"0871\",\"country\":\"中国\",\"district\":\"盘龙区\",\"gpsX\":102.751341,\"gpsY\":25.084339,\"key1\":\"value1\",\"key2\":\"value2\",\"key3\":12,\"networkType\":\"4G\",\"province\":\"云南省\",\"timestamp\":1590455689926}"}
启动定位注意事项
插件中并未进行定位权限获取,因此在调用之前请先获取定位权限;
调用插件前请先调用uni.getLocation方法,以确保得到定位权限;
由于插件仅仅提供了android版,所以建议判断平台为‘android’,再进行调用。
实例代码:
getLocationPermission(){
let _self = this
uni.getLocation({
type: 'wgs84',
success: function(res) {
uni.getSystemInfo({
success: function(res) {
if (res.platform === "android") {
uni.showToast({
title: '地位服务'
})
_self.location()
}
}
});
}
});
},
location() {
//开始定位
leleLocation.location(
{
sendUpUrl: 'http://127.0.0.1:9431/app/jobTrajectory/add', //上送服务器的接口地址,请求方式为post,isSendUp为ture时必传
token: 'eyJ0eX8RZe-wAWHk', //可选,令牌,根据服务端要求
// 无需存在userId和userIdKey字段了,如果需要自定义参数请通过customParams传入,0.0.6版本已去除
// userId: '145', //可选,用户标识,默认为null
// userIdKey: 'auxiliaryId', //上送服务端的用户标识key值,对应值是userId传入的值,不指定userIdKey时,默认key为"userId"字符串。
intervalTime: 10000, //可选,间隔定位时间,单位毫秒(ms),默认2000ms。
isSendUp: true, //是否需要上送到业务服务器
customParams: {"key1":"value1","key2":"value2","key3":12},//自定义上送服务器的业务参数
isShowNotify: true,//是否在通知栏显示"定位中..."的提示
notifyTip: '工作中...',//通知栏提示信息,默认为"定位中..."
isPermanent: true,//是否常驻通知栏(常驻通知栏,点击不会取消),isShowNotify参数为true时才有效。
isStartApp: false点击通知栏定位提示是否启动app,默认启动。传入false时,点击通知栏提示将无任何反应。
},
result => {
const resJson = JSON.stringify(result);
modal.toast({
message: resJson,
duration: 1.5
});
switch (result.code) {
case '0':
console.log('callback---result--' + resJson);
console.log('callback---msg--' + result.msg);
console.log('callback---sendContent--' + result.sendContent);
break;
case '-1':
console.log('callback---button--' + result.msg);
break;
}
}
);
},