android原生插件,Android原生定位插件

调用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;

}

}

);

},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值