Вызов функции и передача аргументов из Kotlin во флаттер - PullRequest
0 голосов
/ 20 января 2020

Я имею дело с 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")
}

Но ничего не происходит напечатано на стороне флаттера, когда я запускаю код. Никаких сбоев или исключений.

...