如何获取 Flutter Web 应用程序的构建和版本号

Sur*_*gch 5 version dart flutter

这里的关键字是Web。我可以使用package_info插件获取 Flutter 应用程序的构建和版本号,但如果它在网络上运行,我就不能。如何获取 Flutter Web 应用程序的包信息?

我将在下面提供一个答案作为临时修复,但我正在寻找一种从 pubspec.yaml 获取版本信息的解决方案。

Sur*_*gch 6

作为临时解决方法,您可以创建一个包含版本信息的单独文件:

web_version_info.dart

class WebVersionInfo {
  static const String name = '1.0.0';
  static const int build = 1;
}
Run Code Online (Sandbox Code Playgroud)

您可以将它用于所有平台,也可以在您的代码中kIsWeb用于仅将其用于网络:

Future<String> _getAppVersion() async {
  if (kIsWeb) {
    return WebVersionInfo.name;
  } else {
    PackageInfo packageInfo = await PackageInfo.fromPlatform();
    return packageInfo.version;
  }
}
Run Code Online (Sandbox Code Playgroud)

当然,这不是一个很好的解决方案,因为现在您需要记住pubspec.yamlWebVersionInfo每次更新应用程序时都更新版本和构建信息。


小智 6

如果您使用 beta 通道,您可以使用package_info_plus插件,该插件似乎是 package_info 的直接替代品。因此,您需要更改的只是 pubspec.yaml 和您的导入。(我只使用版本,因此可能存在我没有注意到的差异)

更改 pubspec 和您的导入

pubspec.yaml:package_info_plus: '>=0.6.3 <2.0.0'

进口:import 'package:package_info_plus/package_info_plus.dart'

参考:

Github 问题 46609