flutter插件开发(一)(纯dart)

93 阅读2分钟

使用命令创建生成插件模板

 // PACKAGE_NAME首字母不能大写
 dart create -t package <PACKAGE_NAME>

模板创建成功后,会在执行命令目录生成一个名为<PACKAGE_NAME>的文件夹,打开该文件夹,会发现已经生成了很多文件。

编写插件

添加依赖

生成的插件模板没有对 material 的引用,如果你的flutter插件编写需要用到 material 中的官方widget,那么在在pubspec.yaml中添加对 materail 的引入

# 添加以下配置
dependencies:
  flutter:
    sdk: flutter

如果要编写的插件也依赖于其他插件,也在这里添加,跟开发flutter应用一样

修改后,使用pub get更新依赖

编写插件内容

lib文件下存在两个插件模板文件:

  • lib/src/<PACKAGE_NAME>.dart
///// (插件中需要暴露出来的类、方法所在的文件在这里export导出)

/// Support for doing something awesome.
///
/// More dartdocs go here.
library flucot;

export 'src/flucot_base.dart';
// 如过文件包含较多类,只想暴露特定类,使用show关键字
export 'src/flucot_base.dart' show Awesome;
// TODO: Export any libraries intended for clients of this package.
  • lib/src/<PACKAGE_NAME>_base.dart
///// 一些公共的需要暴露出来的类、方法放到这里,统一在<PACKAGE_NAME>.dart文件中export导出(如果没有,就无需保留这个文件了)

// TODO: Put public facing types in this file.

/// Checks if you are awesome. Spoiler: you are.
class Awesome {
  bool get isAwesome => true;
}
  • 附一个flutter_screenutil插件的结构图:

    image.png

    flutter_screenutil.dart:

    image.png

发包

关于发包
  • 发包是永久的,编写的package一旦发布,将永久存在,不能撤回。
  • 发布的包可以添加终止的标记,表示不再维护
发包步骤
  1. 访问 pub.dev/ 并登录 (参考资料里给的地址是国内镜像,无法登录)

  2. 登录成功后,选择右上角,创建发布者

  3. 创建发布者需要设置与发布者关联的域名,与域名绑定的网站需要将网站资源添加到Search Console, 这个操作可能需要几个小时的时间

  4. 创建好发布者以后,使用以下命令发包(或升级新版本):

    dart pub publish
    

参考资料:

创建插件:dart.cn/guides/libr…

发包:dart.cn/tools/pub/p…