Перейти к основному содержимому

NativeModuleCapabilityDelegate

Миксин, предоставляющий возможности для управления и взаимодействия с нативным кодом в системе Duit UI.

Классы, использующие этот делегат, должны реализовать методы для обработки взаимодействий с нативными модулями, таких как вызов нативных методов и инициализация модуля.

Методы​

initNativeModule​

Future<void> initNativeModule();

Инициализирует нативный модуль.

invokeNativeMethod​

Future<T?> invokeNativeMethod<T>(String method, [arguments]);

Вызывает нативный метод.

Параметры:

  • method — имя нативного метода для вызова
  • arguments — дополнительные данные для метода (опционально)

Возвращает: Результат вызова нативного метода типа T.

releaseResources​

void releaseResources();

Освобождает ресурсы делегата.

Пример реализации​

final class MyNativeModuleManager with NativeModuleCapabilityDelegate {
static const _channel = MethodChannel('com.example.app/native');


Future<void> initNativeModule() async {
// Инициализация нативного модуля
await _channel.invokeMethod('init');
}


Future<T?> invokeNativeMethod<T>(String method, [arguments]) async {
return await _channel.invokeMethod<T>(method, arguments);
}


void releaseResources() {
// Очистка ресурсов
}
}

Использование с XDriver​

final driver = XDriver.nativeModule(
nativeModuleManager: MyNativeModuleManager(),
initialRequestPayload: {
'hostVersion': '1.0.0',
},
);

Типичные сценарии использования​

  • Интеграция Duit как модуля в существующее нативное приложение
  • Вызов платформо-специфичных функций (камера, файловая система, сенсоры)
  • Обмен данными между Duit UI и нативным кодом хост-приложения
  • Использование нативных SDK и библиотек
подсказка

Режим нативного модуля идеально подходит для постепенной миграции существующих приложений на Duit или для встраивания динамических UI-экранов в нативные приложения.