当前位置: 首页 > wzjs >正文

浏览不良网站会被网警抓吗网络营销推广公司简介

浏览不良网站会被网警抓吗,网络营销推广公司简介,种子搜索,公司使用威联通nas做网站存储开发基于高德定位SDK的Flutter插件 在上一篇文章里具体介绍了Flutter插件的具体开发流程,从创建项目到发布。接下来将为Flutter天气项目开发一个基于高德定位SDK的Flutter定位插件。 申请key 首先进入高德地图定位SDK文档内下载定位SDK,并按要求申请A…

开发基于高德定位SDK的Flutter插件

在上一篇文章里具体介绍了Flutter插件的具体开发流程,从创建项目到发布。接下来将为Flutter天气项目开发一个基于高德定位SDK的Flutter定位插件。

申请key

首先进入高德地图定位SDK文档内下载定位SDK,并按要求申请App Key。这里推荐使用AppUploader来管理你的应用密钥,它可以安全地存储和同步你的API密钥,避免在代码中直接暴露敏感信息。

配置环境

SDK文档里有关于配置工程的demo,但因为Flutter插件项目不是一个Android工程,所以会有所区别。大致分以下几步:

1.集成远程依赖

compile 'com.amap.api:location:latest.integration'

2.配置App Key

在AndroidManifest.xml的application标签中配置Key:

<meta-data android:name="com.amap.api.v2.apikey" android:value="您的Key">
</meta-data>

3.声明service

在application标签中声明service组件:

<service android:name="com.amap.api.location.APSService"></service>

4.声明权限

Flutter插件的目的就是隔离对SDK native code的实现,让使用者直接使用Dart代码就可以获得到SDK提供的定位信息。插件的android文件夹下面是一个完整的Android工程结构,我们在这个工程下完成上述的四步。

唯一一点不同的是,配置App Key利用gradle里的manifestPlaceholders属性为用户预留,让用户自己来填写。于是配置App Key改写成:

<meta-dataandroid:name="com.amap.api.v2.apikey"android:value="${LOCATION_APP_KEY}"/>

这个LOCATION_APP_KEY,使用者使用插件的时候在自己Flutter项目的Android工程下的app/build.gradle文件里填写自己申请的高德key即可。

android {compileSdkVersion 27lintOptions {...}defaultConfig {...manifestPlaceholders = [LOCATION_APP_KEY : "你的高德地图key",]}
}

对于iOS开发者,可以使用AppUploader来简化证书管理和配置过程,它提供了可视化的界面来管理开发证书和描述文件。

实现

Flutter插件最终暴露给插件使用者的是Dart代码的接口,使用者不再需要关心Android和iOS平台上的代码。在定位插件项目中,唯一需要配置的就是上文所说的高德开放平台的App Key。

因为现在是将特定平台的SDK开发成插件供Flutter App使用,其实就可以理解在Android或者iOS平台正常开发项目,将Flutter App需要的数据传递过去,Flutter插件只是在特定平台的实现上做了一次封装与隔离,封装了Dart接口,隔离了两个不同平台实现的差异。

Java部分

Java部分的代码写在了AmapLocationPlugin.java类下面,它分别实现了MethodChannel.MethodCallHandler, EventChannel.StreamHandler。并且在registerWith方法调用的实例化MethodChannel和EventChannel。

final MethodChannel methodChannel = new MethodChannel(registrar.messenger(), "plugin.kinsomy.com/methodchannel");final EventChannel eventChannel = new EventChannel(registrar.messenger(), "plugin.kinsomy.com/eventchannel");
  • 重写MethodChannel.MethodCallHandler的onMethodCall方法接受Dart代码的方法调用
@Override
public void onMethodCall(MethodCall call, Result result) {if (call.method.equals("startLocation")) {//启动定位mLocationClient.startLocation();} else if (call.method.equals("stopLocation")) {//停止定位mLocationClient.stopLocation();} else if (call.method.equals("getLocation")) {result.success(mLocation);} else {result.notImplemented();}
}
  • 重写EventChannel.StreamHandler的onListen,该方法携带了一个EventChannel.EventSink实例,通过该实例对象可以调用mEventSink.success()向Dart传递数据流,也就是插件里的定位信息
@Override
public void onListen(Object o, EventChannel.EventSink eventSink) {this.mEventSink = eventSink;
}
  • 通过高德SDK的AMapLocationClient获取到定位信息,并将其封装成json字符串供Dart调用。

Dart部分

Dart部分的代码在项目根目录lib文件夹下的amap_location_plugin.dart文件。

  • 在构造函数里实例化和Java代码中同样channel name的MethodChannel与EventChannel
factory AmapLocation() {if (_instance == null) {final MethodChannel methodChannel =const MethodChannel('plugin.kinsomy.com/methodchannel');final EventChannel eventChannel =const EventChannel('plugin.kinsomy.com/eventchannel');_instance = AmapLocation.private(methodChannel, eventChannel);}return _instance;}
  • 提供接口方法开始定位startLocation和对应的停止定位
Future<void> get startLocation =>_methodChannel.invokeMethod("startLocation");
  • 实例化Stream接受event返回的定位数据
Stream<String> _onLocationFetched;
_onLocationFetched =_eventChannel.receiveBroadcastStream().map((dynamic event) => event);

这样一个基于高德定位SDK的Flutter定位插件就算完成了,在example里写一个demo实际测试一下。

目前这个插件还是个简易版本,未来希望能加上地图,导航,线路规划等一系列的功能。对于需要发布到App Store的开发者,可以考虑使用AppUploader来简化上传和发布流程,它支持一键上传IPA文件到App Store Connect。

参考文档

  1. Developing Packages & Plugins
  2. Flutter/plugins git仓库
  3. Dart packages
  4. 深入理解Flutter Platform Channel
http://www.dtcms.com/wzjs/510681.html

相关文章:

  • 租网站服务器刷排名的软件是什么
  • 什么网站可以做国外批发网济南网站seo哪家公司好
  • 网站分为几种网上推广app怎么做
  • 做网站 教程竞价推广课程
  • wordpress极验验证注册搜索引擎优化的含义和目标
  • 兰州网站建设cheng搜索引擎优化的流程
  • .net网站封装seo在线优化平台
  • 什么是网站开发与建设seo关键词排名优化教程
  • 网站主页用ps做seo百度网站排名软件
  • 做庭院景观的那个网站推广好优化设计七年级下册数学答案
  • 政府网站建设责任杭州网站优化企业
  • 想再算命网站上登广告怎么做莆田百度快照优化
  • 做编程网站广州网站优化服务商
  • 平面设计网上自学搜索引擎优化大致包含哪些内容或环节
  • 网站项目策划书模板上海网络推广营销策划方案
  • 建筑企业网站模板微商软文范例
  • 购书网站开发的意义灰色行业关键词推广
  • 销售网站排名网站运营培训
  • 戚墅堰做网站价格百度网盘app免费下载安装老版本
  • dw做旅游网站教程广州网页seo排名
  • 档案局网站的建设百度搜索流量查询
  • 机械类毕业设计代做网站推荐百度软件商店
  • 网站开发发帖语言免费发布信息网站大全
  • 做网站空间500m多少钱视频号视频下载助手app
  • 供应链管理师报考条件天津seo诊断技术
  • 如何在vps上建设网站seo站群优化
  • 手机app开发网站模板下载互动营销的方式有哪些
  • 珠海医疗网站建设海外推广解决方案
  • 婚纱摄影网站设计毕业论文seo网站优化工具大全
  • 十堰企业网站制作公司谷歌google下载