Я имею дело с PlatformChannels
, пытаясь связаться от Kotlin
до Flutter
. Попытка фактически сделать то, что объясняется на документах из каналов платформы флаттера, но в обратном направлении:
флаттер платформенных каналов документов
Идея состоит в том, чтобы вызвать Функция Flutter из функции configureFlutterEngine класса MainActivity.kt.
Для этого я делаю на стороне Flutter, main.dart (пример по умолчанию из Flutter):
class _MyHomePageState extends State<MyHomePage> {
static const platformChannel = const MethodChannel('myTestChannel');
@override
Widget build(BuildContext context) {
platformChannel.setMethodCallHandler((call){
print("Hello from ${call.method}");
return null;
});
//
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
//
//
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
],
),
),
);
}
}
А со стороны Kotlin я просто пытаюсь вызвать метод обратного вызова флаттера на MainActivity.kt :
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine)
val channel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "myTestChannel")
channel.invokeMethod("myTestChannel","the argument from Android")
}
Но ничего не происходит напечатано на стороне флаттера, когда я запускаю код. Никаких сбоев или исключений.