- AndroidStudio下载地址(https://www.androiddevtools.cn/)(4.1.2)
- (最新:Android Studio Dolphin | 2021.3.1 (Sep 2022) | Android Developers)
- Flutter-SDK 下载地址(https://flutter.dev/docs/development/tools/sdk/releases)(2.0.4)
- (最新:Flutter SDK releases | Flutter)
- Flutter 配置地址 (https://flutterchina.club/setup-macos/)
- Flutter 学习地址(https://book.flutterchina.club/)
- Dart语言学习地址 (https://www.yiibai.com/dart/)
一.创建flutter的四种方式
- application: Flutter应用
- plugin:原生与dart层的实现。(某些功能需要dart单独完成不了,需要原生开发,此时就会涉及原生与flutter的交互。)
- package:纯dart实现。
- module:混编到已有的原生项目内。
plugin/package,在被application使用时可以理解为Android的module(类似在gradle中,api(“com.xx.xx”)), 在iOS 里面的framework
目录结构:
application和plugin的目录结构基本一样。
android/IOS:可以和开发原生一样打开本地目录开发。
lib:dart代码根目录
pubspec.yaml:类似Android中的build.gradle。主要引用三方plugin或package。类似iOS 的cocoapods 的podfile 文件
BasicMessageChannel:用于传递字符串和半结构化的信息,可以双向的请求数据。(还没用过)
MethodChannel:用于传递方法调用(Flutter端可以调用原生端的方法并通过Result接口回调结果数据。(通俗:flutter主动获取原生数据)
EventChannel: Flutter端监听原生端的实时消息,一旦原生端产生了数据,立即回调到Flutter端。(通俗:原生主动给flutter发送数据)
二:开发plugin。
1.New Flutter Project 时选择 Flutter Plugin
- 默认会生成如上图的目录结构,且会自动生成MethodChannel通道方法
- CustomPlugin,自己写的EventChannel插件(dart部分)。右侧为flutter使用原生view
(2)直接打开plugin_demo下的Android目录如果下图(Android部分 )
(1)绿框部分自动生成PluginGdDemoPlugin.java对应 plugin_gd_demo.dart
(2)红框自己写的EventChannel。自己写的插件需注册。其中CustomPlugin.dart对应原生部分的CustomPlugin.java,以此做桥梁。
3. ios 部分也是类似的 直接打开plugin_demo下的 iOS目录如果下图
- 绿色部分为系统自动生成的
- 红色部分需要开发的部分,自定义功能需要注册到 PluginGdDemoPlugin,根据注册的ID 在CustomPlugin.dart 中调用。
-
iOS 插件开发的工程目录:plugin_demo ->example ->ios ->xcworkspace 具体位置
三.使用plugin(package使用同plugin)
(1)插件引用有两种方式,本地和远程Git。(注意绿色的对齐部分)