【问题标题】:How to check if flutter app runs in standalone mode or as a module inside of a native app?如何检查颤振应用程序是在独立模式下运行还是作为本机应用程序内的模块运行?
【发布时间】:2021-06-12 15:26:59
【问题描述】:

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

【问题讨论】:

    标签: flutter flutter-module


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      我的解决方案是在应用启动时,尝试在 MethodChannel 中调用一个方法,如果抛出 MissingPluginException 意味着 Flutter 独立运行。

      /// 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;
        }
      }
      

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 2018-09-17
      • 2023-03-09
      • 2017-02-04
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2020-02-24
      相关资源
      最近更新 更多