Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面,因其毫秒级热重载能够实现快速开发、具备超强原生性能以及富有表现力和灵活的UI,越来越受开发者喜爱,因此推出百度定位Flutter插件供广大开发者在开发Flutter Application的时候,可以集成本插件实现基本定位需求。
百度定位服务终于在2020年3月更新了这个服务。
第一步:打开/创建一个flutter application工程
根据开发者的实际使用情况,打开一个已有的flutter application工程,或新建一个flutter application工程。 这里以新建一个flutter application工程为例介绍。
第二步:分别申请Android端和iOS端AK
您可以在控制台应用管理中分别创建Android端和iOS端AK,具体步骤可参照Android SDK创建AK说明及iOS SDK创建AK说明。
温馨提示:申请iOS端AK时,需填写Bundle Identifier。打开一个iOS工程代码文件,点击Android Studio右上角Open iOS module in Xcode,用Xcode打开iOS工程,方便查看Bundle Identifier。
![c09b0dfdd666ecad87a5e15995504687.png](https://i-blog.csdnimg.cn/blog_migrate/dc8e7ab30dbaff2e5e62f072f4092032.jpeg)
第三步:设置Android端及iOS端AK
1. 设置Android端AK
在Android目录清单文件的application节点中设置Android端AK,添加如下代码:
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者申请的AK" />
2. 设置iOS端AK
在dart文件中,通过对外接口setApiKey设置iOS端AK,可参考百度定位Flutter插件Demo。代码如下:
@override
void initState() {
super.initState();
_locationPlugin.requestPermission();
//动态申请定位权限
LocationFlutterPlugin.setApiKey("开发者申请的AK");
//设置iOS端AK, Android端AK可以直接在清单文件中配置
}
第四步:集成百度地图定位Flutter插件
1. 在工程目录下新建plugins目录。
2. 将所下载的百度地图定位Flutter插件拷贝到plugins目录中。
3. 在工程中找到pubspec.yaml,在dependencies节点下添加如下代码:
![aa34689c0be1850406e7131327d4fbcb.png](https://i-blog.csdnimg.cn/blog_migrate/7e357eaf430a89bc8944579ca0cfcd48.jpeg)
4. 点击右上角package get按钮,完成插件的集成。
![4de51d07d766e2b885d64e5351a19858.png](https://i-blog.csdnimg.cn/blog_migrate/b681d5b859b1e0eeda99b61a83436425.jpeg)
5. 对于iOS端,需要继续手动部署百度iOS定位SDK。选择iOS设备,点击运行按钮,生成Pods工程。
6. 用Xcode打开iOS目录,对Pods工程手动部署百度iOS定位SDK,具体步骤可参照iOS定位SDK手动部署说明。
![fb5568349ab62cb476eaf86eac1bfb86.png](https://i-blog.csdnimg.cn/blog_migrate/2ce59f293728e99957bda45ff4059cdf.jpeg)
第五步:导入dart类,使用对外接口
在需要获取定位信息的位置导入如下dart类文件:
import 'package:bdmap_location_flutter_plugin/bdmap_location_flutter_plugin.dart';
import 'package:bdmap_location_flutter_plugin/flutter_baidu_location.dart';
import 'package:bdmap_location_flutter_plugin/flutter_baidu_location_android_option.dart';
import 'package:bdmap_location_flutter_plugin/flutter_baidu_location_ios_option.dart';
对外接口的使用方法,可参照百度定位Flutter插件Demo中lib目录的main.dart类。