【问题标题】:Getting access to the same FlutterEngine / FlutterChannel from Broadcast receiver从广播接收器访问相同的 FlutterEngine / FlutterChannel
【发布时间】:2020-03-17 22:27:23
【问题描述】:

我正在开发一个带有一些原生 kotlin 代码的 Flutter 应用程序。通过 MethodChannel 从 Flutter 调用原生方法很简单,反之亦然(从 MainActivity)。

但是,我还想要一种方法来触发从本地广播接收器触发的 Flutter 代码,而我没有原始的 MethodChannel。问题是,我不确定如何使用正确的参数创建 FlutterEngine 以访问相同的 MethodChannel。

有没有办法构造相同的 FlutterEngine 来回调 Flutter 代码?我想做什么:

var flutterEngine = FlutterEngine(XXX)
var flutterChannel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, FLUTTER_CHANNEL)
flutterChannel.invokeMethod(...)

我不确定 XXX 应该在这里获得与 MainActivity 中相同的频道。如果我需要从 MainActivity 传递一些信息,我可以使用意图将其传递给我的广播接收器,但不清楚需要什么。

【问题讨论】:

    标签: flutter kotlin


    【解决方案1】:

    Flutter Engine 和 Channels 使用命名范围,如果您使用相同的引擎名称,则最终通道是 Flutter 端的相同通道。

    【讨论】:

    • 谢谢,我得到了引擎/通道名称(引擎是由颤振创建的,但我打印了名称),但是引擎/通道似乎没有带名称的构造函数。 Channel需要一个binaryMessenger,它是引擎的一个属性,我不知道如何只用一个名字来构造引擎。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多