flutter 当前版本 1.17.5

安装

amap_location_fluttify: ^0.20.0 # 定位 经纬度 地理位置信息
permission_handler: ^5.0.0 # 检测权限,没有权限就申请

集成的高德地图,要先去申请 key 值

android 设置 

 在android/app/res/src/main/AndroidManifest.xml 设置权限和 key

<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位--> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <!-- 高德定位key --> <meta-data android:name="com.amap.api.v2.apikey" android:value="你的key"/>

ios 设置 在 info.plist 中添加权限

<key>NSLocationWhenInUseUsageDescription</key>
<string>要用定位</string>

 

 

使用方法

// 定位
import 'package:amap_core_fluttify/amap_core_fluttify.dart';
import 'package:amap_location_fluttify/amap_location_fluttify.dart';
import 'package:permission_handler/permission_handler.dart';

// 返回数据方法类型
// issuccess 是否定位成功,data: 定位成功的数据
typedef CbackFunction = void Function(bool issuccess, Map data);

class Location {
  var locationListener;
  CbackFunction cback; // 传值回调-返回定位结果
  Location.init(CbackFunction fun) {
   // ios 设置 key AmapLocation.instance.init(iosKey:
'你的key');
  // 验证权限 getLocationPermission(); cback
= fun; } // 验证权限 getLocationPermission() async { bool status = await Permission.location.isGranted; //判断如果还没拥有读写权限就申请获取权限 if (!status) { return await Permission.location.request().isGranted; } else { return status; } } // 定位 startLocation() async { try { final position = await AmapLocation.instance.fetchLocation(); if (position == null) { throw Exception('定位失败!'); } else { Map<String, dynamic> result = { 'latitude': position.latLng.latitude, 'longitude': position.latLng.longitude, 'address': position.address }; // 获取定位结果 if (cback != null) { cback(true, result); } } } catch (e) { cback(false, {}); print(e); } } }

我这里初始化的是 就调用了 验证权限,也可以在每次调用定位之前 验证权限。

  

该插件定位在android 遇到过一个问题,就是在开发的时候 不能定位,

报错如下

 

 

这里又一个 SHA1 码,好像是写死在里面的,如果我用这个 SHA1 去申请 高德定位 android 的key, 那么开发模式也可以定位成功。

用自己android 证书的  SHA1 申请的key 定位不了,后来试了一下打包之后 是能定位成功的,就是开发模式异常 没多大影响,且 ios 是完全正确的

我这里只用到了 单次定位,更多api 可以去包网站查看  https://pub.flutter-io.cn/packages/amap_location_fluttify/example

 

posted on 2020-12-11 15:38  浅唱年华1920  阅读(1635)  评论(0编辑  收藏  举报