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