更新记录

1.0.8(2021-05-27)

新增:海拔altitude 街道street 街道门牌号streetNum 。

1.0.7(2021-01-14)

修复:调用stop接口时取消常驻通知图标。

查看更多

平台兼容性

Android iOS
适用版本区间:4.4 - 11.0 ×

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


高德持续定位使用,符合作者所做项目,使用时请确认是否满足项目需求【主要作用是后台持续定位(用户必须给相应权限,且不清理后台运行应用前提下),以及单次获取定位信息】。

更新

v1.0.8版本:

新增:海拔altitude 街道street 街道门牌号streetNum 。

v1.0.7版本:

修复:调用stop接口时取消常驻通知图标。

v1.0.5版本:
  1. once接口参数:支持locationMode和gpsFirst参数见底部参数说明。
  2. start方法增加常驻通知文字描述配置。
v1.0.4版本:

start方法增加3个参数:见底部参数说明

1)定位场景 2)定位模式 3)GPS优先

v1.0.3版本:

修改电量获取,优化结果json结构,将非定位信息单独摘出

示例

{ "GPSSatellites": 0, "GPSStatus": 0, "accuracy": 30, "adCode": "000000", "address": "XX省XX市XX区南一路x号靠近XXXX园B座", "androidBuild": { //手机相关信息 "appVersionCode": 1, "appVersionName": "1.0.0", "brand": "Xiaomi", "cpu_abi": "armeabi-v7a", "cpu_abi2": "armeabi", "model": "MI 6", "product": "sagit", "release": "9", "sdk": "28", "sdk_int": 28 }, "battery": {//电池信息 "level": 100, "status": 2 }, "bearing": 0, "city": "XX市", "cityCode": "0123", "code": 0,//根据此值判断定位结果 "country": "中国", "description": "在XXXX园B座附近", "district": "XXX区", "isWifiAble": true, "latitude": 37, "locationType": 2,//定位类型,见下方定位类型对照表 "longitude": 118, "message": "OK", "now": 1604477982093, "poiName": "XXXX园B座", "provider": "lbs", "province": "XX省", "result": "OK", "satellites": 0, "speed": 0, "time": 1604477976956 }

v1.0.2版本:

修改dc.okhttp(新版dc.okhttp3)为官方okhttp3,防止DC更改包名出错。

如有问题,请及时反馈。。。

使用

引入插件: 在manifest中app原生插件配置中,添加云端插件

选择高德地图并填入正确key.

参数说明:

示例:

const fUN_AmapLocation = uni.requireNativePlugin('FUN-AmapLocation');
//可提前申请权限。也可用uni.getLocation来提前申请。防止第一次可能定位失败。[start接口也有权限判断申请]
fUN_AmapLocation.permission({}, result => {
            console.log('====fUN_AmapLocation定位====');
        });
//开启定位
fUN_AmapLocation.start(
                {
                    intervalTime: 5000,
                    reportInterval: 5,
                    isReport: true,
                    url: 'http://192.168.0.66/fun/open/test_json.do',
                    params: { a: 1, B: '测试', c: true },
                    headers: { a: '123', B: 'abcd' }
                },
                result => {
                    //见下方定位返回示例
                    console.log('====fUN_AmapLocation定位====', JSON.stringify(result));
                    _this.msg = JSON.stringify(result);
                }
            );  
//定位返回示例
{"B":"测试","GPSSatellites":0,"GPSStatus":0,"a":1,"accuracy":54,"adCode":"370000","address":"山东省XX市XX区南一路122号靠近XX软件园C座","appVersionCode":1,"appVersionName":"1.0.0","bearing":0,"c":true,"city":"XX市","cityCode":"0123","code":0,"country":"中国","description":"在XX软件园C座附近","district":"XX区","isWifiAble":true,"latitude":33.00000,"locationType":2,"longitude":188.00000,"message":"OK","model":"MI 6","now":1591861526567,"poiName":"XX软件园C座","provider":"lbs","province":"山东省","release":"9","result":"OK","satellites":0,"sdk":"28","speed":0,"time":1591861472743}

//停止
fUN_AmapLocation.stop({}, result => {
            console.log('====fUN_AmapLocation定位stop====', JSON.stringify(result));
        });
//单次定位接口
fUN_AmapLocation.once(
                {},
                result => {
                    console.log('====fUN_AmapLocation定位====', JSON.stringify(result));
                    _this.msg = JSON.stringify(result);
                }
            );

//间隔一定时间做相关操作可如下处理,具体以个人实际业务为准
var time_start = 0;
            fUN_AmapLocation.start(
                {
                    intervalTime: 3000,
                    isReport: false
                },
                result => {
                    var time_end = Date.parse(new Date());
                    if (time_end - time_start > 298000) {//
                        if (result.code == 0) {
                            time_start = time_end;
                            //业务逻辑
                        }
                    }
                }
            );

参数说明

start接口参数:
参数 说明 介绍
intervalTime 间隔时间 可选,设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。参数类型:数字。默认值:2000
locationMode 定位模式 可选,设置定位模式,可选的模式有高精度、仅设备、仅网络(低功耗)。默认为高精度模式。参数类型:数字。1:高精度、2:仅网络(低功耗)、3:仅设备。默认值:1
gpsFirst GPS优先 可选,设置是否gps优先,只在高精度模式下有效。默认关闭。参数类型:布尔。true/false,默认值:false
isReport 是否上传 可选,是否使用内置客户端上传数据。参数类型:布尔。true/false,默认值:false
reportInterval 上传间隔 可选,单位:次数,时间间隔为 intervalTime*reportInterval。参数类型:数字。默认值:3
url URL 可选,上传地址。例如'http://192.168.0.66/fun/open/test_json.do'
params HTTP-body 可选,其他上传数据。例如{ a: 1, B: '测试', c: true }
headers HTTP消息头 可选,HTTP消息头自定义数据。例如{ a: 1, B: '测试', c: true }
purpose 定位场景 可选,选择了对应的定位场景,SDK会根据选择的场景自行定制定位参数的值,自行设置的参数覆盖此配置。目前支持3种定位场景的设置:签到、出行、运动。默认无场景。参数类型:数字。0:无、1:签到、2:出行、3:运动。默认值:0
notificationTitle 常驻通知标题 默认:APP名称【1.0.5新增】
notificationText 常驻通知内容 默认:正在后台运行【1.0.5新增】

once接口参数:

仅支持locationMode和gpsFirst参数(1.0.5新增,参考上面说明)

返回结果

code : 0 为定位成功。错误码对照表

定位类型【locationType】对照表
响应码 说明 介绍
0 定位失败 请通过错误码参考错误码对照表进行问题排查。
1 GPS定位结果 通过设备GPS定位模块返回的定位结果,精度较高,在10米-100米左右
2 前次定位结果 网络定位请求低于1秒、或两次定位之间设备位置变化非常小时返回,设备位移通过传感器感知。
4 缓存定位结果 返回一段时间前设备在同样的位置缓存下来的网络定位结果
5 Wifi定位结果 属于网络定位,定位精度相对基站定位会更好,定位精度较高,在5米-200米之间。
6 基站定位结果 纯粹依赖移动、联通、电信等移动网络定位,定位精度在500米-5000米之间。
8 离线定位结果 -
9 最后位置缓存 -

隐私、权限声明

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

定位权限,网络访问权限,读写权限、更改设置、后台定位

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

无,高德是否采集参考其官方说明https://lbs.amap.com/api/android-location-sdk/locationsummary/

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

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