Экземпляр MethodChannel
, в котором он определен, - const
по соглашению, и, честно говоря, у него нет особых причин этого не делать. Однако, хотя типичная реализация имеет канал, определенный в классе обслуживания, это не обязательно. Вы также можете легко определить его в другом месте и затем передать его в свой класс обслуживания с помощью внедрения зависимостей.
Файл инициализации DI
const platform = MethodChannel(...);
void initDI() {
GetIt.I.registerSingleton(platform, "MyMethodChannel");
}
Файл службы
class PlatformService {
final MethodChannel platform;
PlatformService()
: platform = GetIt().I.get("MyMethodChannel");
...
}