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

Posted

技术标签:

【中文标题】从 android 或 iOS 将参数传递给颤振模块【英文标题】:Pass parameters to flutter module from android or iOS 【发布时间】:2020-05-07 15:15:03 【问题描述】:

我正在尝试将 Flutter 模块集成到现有的 android 应用中。使用以下代码启动视图可以正常工作:

private fun startFlutterActivity() 
    val intent = FlutterActivity.withCachedEngine("default_engine").build(this)
    startActivity(intent)

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

【问题讨论】:

【参考方案1】:

最简单的方法是将 id 传递给颤振引擎via the initial route。

比如:

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

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

在颤振方面,您只需在 onGenerateRoute handler 中为您的 MaterialApp 或其他导航器配置解析初始路由。

【讨论】:

以上是关于从 android 或 iOS 将参数传递给颤振模块的主要内容,如果未能解决你的问题,请参考以下文章

将命令行参数传递给颤振应用程序

Firebase 动态链接将自定义参数传递给 iOS 和 android

Android 将参数传递给 TimerTask 扩展类

如何将不同的参数传递给片段 [导航] Android

如何使用 Retrofit 将参数传递给 POST 请求,然后序列化请求?

将参数传递给回调函数COCOS2D Android