命名 Flutter 插件 EventChannel

Naming a Flutter Plugin EventChannel

我用

创建了一个新插件
flutter create --template plugin alfalfa

生成 lib/alfalfa.dart 包含

import 'dart:async';

import 'package:flutter/services.dart';

class Alfalfa {
  static const MethodChannel _channel =
      const MethodChannel('alfalfa');

  //...
}

我想添加一个 EventChannel 以便 Java 和 Objective-C 代码可以回调 Dart 代码。我不知道 EventChannel 的名称应该是什么。

final EventChannel _eventChannel =
    const EventChannel("com.rollingfields.alfalfa/events");

final EventChannel _eventChannel =
    const EventChannel("alfalfa/events");

还是别的?有约定吗?

如果 EventChannel 的更好选择是包含反向域的名称,我是否应该将生成的 MethodChannel 重命名为 com.rollingfields.alfalfa

如有疑问,请查看 flutter 插件库。连接插件使用:

  @visibleForTesting
  static const MethodChannel methodChannel = MethodChannel(
    'plugins.flutter.io/connectivity',
  );

  @visibleForTesting
  static const EventChannel eventChannel = EventChannel(
    'plugins.flutter.io/connectivity_status',
  );

所以,这当然是良好做法的一个例子。所以,也许 com.rollingfields/alfalfacom.rollingfields/alfalfa_events