0

我正在为现有的原生 android 应用程序开发一个颤振模块。我与 MethodChannel 进行了一些互操作。现在,出于测试目的,我想将我的模块作为独立应用程序运行。为此,我使用虚拟占位符模拟了所有互操作代码。现在我想(以编程方式)检查颤振是在独立模式下运行还是作为模块的一部分,以决定使用哪个互操作实现(android one VS dummy)。

4

2 回答 2

0

我的解决方案是当应用程序启动时,尝试调用 MethodChannel 中的方法,如果抛出 MissingPluginException 意味着颤振独立运行。

/// check if flutter is run as a moudle embeded in a app project
static Future<bool> get isEmbeded async {
  try {
    await _methodChannel.invokeMethod('Foo');
    return true;
  } on MissingPluginException {
    return false;
  }
}

启动时调用它,您可以将结果保存为全局静态变量以避免将来的异步调用。

于 2021-12-24T23:42:36.540 回答
0

到目前为止,我最终得到了这个解决方案:

flutter run --dart-define="standalone=true"

在构建独立应用程序时使用它。然后在代码中:

const bool isStandalone = bool.fromEnvironment('standalone');

于 2021-03-15T12:12:17.847 回答