Как изменить имя класса при создании плагина Flutter - PullRequest
0 голосов
/ 22 июня 2019

Я создаю новый плагин 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 голосов
/ 22 июня 2019

pluginClass в pubspec.yaml отличается от вашего класса с каналом метода. На самом деле, если бы вы назвали свой проект my_flutter вместо my_flutter_plugin, pluginClass в pubspec.yaml все равно бы сказал myFlutterPlugin, но ваш класс lib с каналом метода был бы MyFlutter.

Как изменить имя класса

В вашем классе папок lib (в данном случае lib/my_flutter_plugin.dart) просто измените рефакторинг имени класса, как вы обычно переименовываете любой класс. Вы можете переименовать его в AnotherName. Пока вы выполняете рефакторинг с использованием инструментов IDE, это также должно обновлять имя класса в папках example и test.

Как изменить имя канала метода

Просто меняйте имя строки везде, где она используется. В новом проекте плагина это будет в папке lib и папке test. Вместо

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

Вы можете дать ему уникальное имя, например

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