我正在处理PlatformChannels
试图与来自Kotlin
to Flutter
。实际上尝试按照 flutter 平台频道的文档中的说明进行操作,但方向相反:
flutter 平台通道文档 https://flutter.dev/docs/development/platform-integration/platform-channels?tab=android-channel-kotlin-tab#separate
这个想法是从 MainActivity.kt 类上的 configureFlutterEngine 函数调用 Flutter 函数。
为此,我愿意,在 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:',
),
],
),
),
);
}
}
并从科特林方面,我只是尝试调用 flutter 回调方法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")
}
但是当我运行代码时,Flutter 端没有打印任何内容。也没有崩溃或异常。