更新记录

0.0.6(2020-05-27)

  1. 关于调用插件入参相较上一版本改动说明:

    • 去掉userId和userIdKey字段,无需存在userId和userIdKey字段了,如果需要自定义与服务端交互的参数请通过customParams传入,0.0.6版本已去除;
    • 增加了isShowNotify、notifyTip、isPermanent和isStartApp字段,这几个字段均是通知栏提示相关的字段,具体描述请看参数说明。
  2. 定位成功上送的数据字段(备注:只有调用者设置了isSendUp为true,以及sendUpUrl不为空且是正确的可用的接口地址,才会通过接口地址上送到调用者所指定的服务端):

    • altitude:海拔高度
    • country:国家
    • province:省份
    • city:市
    • cityCode:城市编码
    • district:区
    • adCode:区域编码
    • networkType:网络类型

0.0.45(2020-05-14)

1.添加调用时可传入自定义上送服务器的信息; 2.添加timestamp字段,值为定位成功回调时的时间戳; 3.优化使用说明文档。

0.0.4(2020-04-22)

定位成功时,返回的msg为位置信息的json串。

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 10.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. 引入插件

    const leleLocation = uni.requireNativePlugin('Lele-Location');
  2. 启动定位

    1. 调用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时,点击通知栏提示将无任何反应。
    2. 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}

    3. 结果回调:

      • 回调中一定存在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}"}

    4. 启动定位注意事项

      • 插件中并未进行定位权限获取,因此在调用之前请先获取定位权限;
      • 调用插件前请先调用uni.getLocation方法,以确保得到定位权限;
      • 由于插件仅仅提供了android版,所以建议判断平台为‘android’,再进行调用。
    5. 实例代码:

      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;
                      }
                  }
              );
          },
  3. 停止定位

    1. 调用stop()函数停止定位服务,参数如下:

    2. 结果回调

    3. 实例代码:

      leleLocation.stop()

隐私、权限声明

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

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" />

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

1. 本插件不会采集除位置信息外的其它用户数据,只是通过高德地图实现基础的定位功能,获取定位成功后的基本位置信息; 2. 定位成功后不会主动上送位置信息到插件开发者的服务器,是否要上送定位结果的位置信息到服务端,有插件调用者决定,只有调用者设置了isSendUp为true,以及sendUpUrl不为空且是正确的可用的接口地址,才会通过接口地址上送到调用者所指定的服务端。

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

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