flutter调用gps,Flutter调用c#

flutter 第三方地图导航实现

这里实现flutter第三方地图导航,选用最简单的方式--调用第三方地图客户端;但各种地图客户端用的坐标系不一定相同,先了解下常见的坐标系:

为通化县等地区用户提供了全套网页设计制作服务,及通化县网站建设行业解决方案。主营业务为成都网站建设、成都网站设计、通化县网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

地图应用api坐标系:

在 pubspec.yaml 文件中添加依赖插件:

一般android和ios调起第三方应用是通过scheme方式,这里调起第三方地图客户端导航也一样,如高德地图,ios scheme为iosamap,android scheme为androidamap; 所以flutter需要引用url_launcher;

未完待续~~

Flutter中使用gRPC

gRPC是谷歌开发的一款远程过程调用系统,可以让客户端像调用本地对象一样使用服务端应用的方法,使用protocol buffers接口定义语言来定义服务方法,protocol buffer定义参数和返回类型。

protobuf类似json,是一种数据结构协议,在android studio中安装Protobuf Support,方便查看编写的proto文件

dart使用proto插件将proto文件生成对应的dart文件,使用如下步骤

1、安装flutter之后,再flutter的下面路径中有pub命令,需要将命令加入到path中。

可以vi ~/.zshrc,在文件中加入source ~/.bash_profile,然后在vi ~/.bash_profile文件中加入下面路径(:分割不同的路径)

export PATH=/Users/webull/app/flutter/bin:/Users/webull/app/flutter/bin/cache/dart-sdk/bin:/Users/webull/.pub-cache/bin:$PATH

其中fluter/bin是flutter的命令路径,dart-sdk/bin中包含了pub和其他dart命令,.pub-cache/bin是之后运行pub之后建立的路径,里面包含了proto-gen-dart命令,用来将proto文件转换为dart的命令

2、使用下面的命令安装proto插件

$ pub global activate protoc_plugin

安装完成后,上面的用户目录中的.pub-cache目录才会有proto-gen-dart文件。

1、其中/Users/webull是我的用户目录 app/flutter是flutter的安装目录

参考:

1、gRPC介绍

2、gRPC配置

Flutter初始化

新建一个Flutter工程,android模块。

1,只有一个Activity组件,它是Dart层绘制Widget的容器。

2,Application配置FlutterApplication。

应用Application配置io.flutter.app.FlutterApplication类,App首次启动时,初始化。

调用FlutterMain.startInitialization()方法。

initConfig方法,从AndroidManfest.xml配置的applicaion节点获取meta-data数据,初始化以下默认值。

这些值都是使用中用到的name,例如,抽取apk中asset资源时,flutter_assets打包目录,打包产物data名称。

initResources方法, 初始化资源。

在Flutter打包apk的asset目录下,包括fluttter_asset目录/资源项,将资源从apk中抽取,保存在 Context.getDir("flutter", 0) 目录下。

/data/user/0/包名/app_flutter目录。

在目录中创建一个时间戳文件,根据apk版本和包信息记录的lastUpdateTime更新时间,第二次启动时,若apk未更新,不需要再次抽取。

加载so库,libflutter.so,System.loadLibrary()。

主页面继承FlutterActivity,配置启动模式singleTop。

FlutterActivity类在io.flutter.app包, (区别io.flutter.embedding.android包), 组件生命周期委托给FlutterActivityDelegate类。

组件启动,onCreate方法。

FlutterMain.ensureInitializationComplete方法,确保资源成功抽取完成,创建FlutterView视图(io.flutter.view),继承SurfaceView类,setContentView方法,设置组件主布局即FlutterView视图。

最后,根据Bundle路径,runBundle()加载运行,

调用FlutterView的runFromBundle方法,入口点在dart的main方法,

通过FlutterNativeView,调用FlutterJNI的native方法。

nativeRunBundleAndSnapshotFromLibrary方法。

任重而道远

flutter APP 极光推送引入后 权限问题

没有引用极光推送包 之前得权限:

-访问网络

-修改/删除SDK卡中的内容

-拍照

-控制震动器

-查看网络状态

-查看WLANK状态

-读取手机状态和身份【去掉 tx_device_id 包 该权限没有 】

极光推送包引入后 手机权限多了以下这些:

-修改全局系统设置

-装载和卸载文件系统

-显示系统及警报

-大概位置

-更改WLAN状态

-精准的(GPS)位置

-访问额外的位置信息提供程序命令

-更改网络连接性

-检索当前运行的应用程序


分享标题:flutter调用gps,Flutter调用c#
链接地址:http://pwwzsj.com/article/dscoiep.html