创建Flutter插件时如何修改类名

时间:2019-06-21 22:45:06

标签: plugins flutter dart rename

我正在创建一个新的Flutter插件

我在创建它时将其命名为my_flutter_plugin。但是现在我想更改主类名称。

当前是这样:

// lib/my_flutter_plugin.dart

import 'dart:async';

import 'package:flutter/services.dart';

class MyFlutterPlugin {
  static const MethodChannel _channel =
      const MethodChannel('my_flutter_plugin');

  static Future<String> get platformVersion async {
    final String version = await _channel.invokeMethod('getPlatformVersion');
    return version;
  }
}

我想将MyFlutterPlugin更改为AnotherName,但是当我查看pubspec.dart时会说:

# The following section is specific to Flutter.
flutter:
  # This section identifies this Flutter project as a plugin project.
  # The androidPackage and pluginClass identifiers should not ordinarily
  # be modified. They are used by the tooling to maintain consistency when
  # adding or updating assets for this project.
  plugin:
    androidPackage: com.example.my_flutter_plugin
    pluginClass: MyFlutterPlugin

我想将软件包名称保留为my_flutter_plugin,但这似乎表明我不能(或不应该)更改插件类名称。

如何更改班级名称?

1 个答案:

答案 0 :(得分:0)

pubspec.yaml 中的pluginClass与使用方法通道的类不同。实际上,如果您将项目命名为my_flutter而不是my_flutter_plugin,则 pubspec.yaml 中的pluginClass仍会显示myFlutterPlugin,但您的lib方法通道的类为MyFlutter

如何更改班级名称

在您的lib文件夹类(在本例中为lib/my_flutter_plugin.dart)中,只需像通常重命名任何类那样重构类名即可。您可以将其重命名为AnotherName。只要您使用IDE工具进行重构,这还将更新exampletest文件夹中的类名。

如何更改方法通道名称

只需在使用字符串的任何地方更改它的名称即可。在新的插件项目中,该文件夹将位于lib文件夹和test文件夹中。而不是

static const MethodChannel _channel = 
    const MethodChannel('my_flutter_plugin');

您可以给它一个唯一的名称,例如

static const MethodChannel _channel = 
    const MethodChannel('com.example.my_flutter_plugin/another_name');