将参数从 android 或 iOS 传递给 flutter 模块

Seb*_*Rut 9 android flutter

我正在尝试在现有的 android 应用程序中集成一个颤振模块。使用以下代码启动视图工作正常:

private fun startFlutterActivity() {
    val intent = FlutterActivity.withCachedEngine("default_engine").build(this)
    startActivity(intent)
}
Run Code Online (Sandbox Code Playgroud)

但是我不确定如何传递额外的数据,例如一个 id 来为 flutter 组件获取数据。我知道你可以建立一个消息通道,但这似乎是传递东西的大量开销。

her*_*ert 1

最简单的方法是通过初始路由将 id 传递给 flutter 引擎。

所以就像:

    flutterEngine = new FlutterEngine(this);
    // Configure an initial route.
    flutterEngine.getNavigationChannel().setInitialRoute("showStuf?id=$id");
Run Code Online (Sandbox Code Playgroud)

或者,在您的示例中,您可以简单地将意图额外FlutterActivityLaunchConfigs.EXTRA_INITIAL_ROUTE添加到意图中。

在 flutter 方面,您只需解析onGenerateRoute处理程序中的初始路由以获取您MaterialApp或其他导航器配置。