Flutter提供了和原生做交互的方式,我们通过和原生交互就可以达到Flutter调用原生平台的相关功能的目的。换句话说,Flutter做不到的事(比如:设备有关的、第三方SDK、长连接等),我们都可以通过Flutter与原生交互来做到,其中插件的编写是必不可少的一个过程。我们一定要掌握插件的编写。 有人会说:“网上不是有很多插件库吗?”没错!但是如果别人写的插件功能没有你想要的怎么办?如果插件与你本地不兼容怎么办?如果你的项目急用一个功能,网上找不到插件库怎么办?那么这个时候学会自己编写插件库就非常有必要了!
本文首发在公众号**Flutter那些事
**,欢迎大家多多关注。
下面详细的讲解一下Flutter如何创建一个插件,并且教大家上传到Pub库,让大家也体验一把自己的库被别人使用的自豪感。
本文示例源码同步在Github:https://github.com/AweiLoveAndroid/flutter_device_information,如有任何问题,欢迎提issue
工具安装:
Flutter基础篇:
Flutter进阶篇:
在这里以调用原生平台设备信息为例做讲解。手把手教大家写一个Flutter插件。
Flutter中通过MethodChannel和原生平台做交互。如图所示:
Flutter调用原生平台交互示意图
使用Android Studio/Intellij IDEA创建项目,截图如下:
使用flutter create
命令行创建,项目名称放在最后,命令如下所示:
flutter create --org com.awei --template=plugin -a java --description "A Flutter plugin for using devices informations in Android" flutter_device_information
常用的命令参数如下:
上面那个命令的意思是:创建一个插件,包名为“com.awei”,指定Android代码使用Java语言编写,插件项目名称为“flutter_device_information”,项目描述为:“A Flutter plugin for using devices informations in Android”。
如下图所示:
完整的项目结构图
其中: