如何在 flutter 中获取 App 最后更新时间?

How to get App last Update time in flutter?

我想在 flutter 中获取上次应用更新时间,我试过了,但我获取不到那个时间。

嘿嘿 我不知道是否有管理这个的包,但我认为你可以通过一些组合来管理它。照常将 shared_preferences 和 package_info_plus 作为依赖项添加到 pubspec.yaml 文件中。 然后在您的小部件树中的最上层有状态小部件中,定义如下函数(例如 runApp -> MyApp -> HomePage(stateful) on Homepage):

    //import on top
    import 'package:shared_preferences/shared_preferences.dart';
    import 'package:package_info_plus/package_info_plus.dart';
    // .........
    void checkUpdateTime() async {
    PackageInfo packageInfo = await PackageInfo.fromPlatform();
    SharedPreferences prefs = await SharedPreferences.getInstance();
    var previousVersion = prefs.getString("version");
    var previousTime = prefs.getString("latestTimeUpdated");
    String currentVersion = packageInfo.version + "+" + packageInfo.buildNumber;
    String now = DateTime.now().toUtc().toString();

    // First launch after app downloaded
    if(previousVersion == null && previousTime == null){
        await prefs.setString("latestTimeUpdated", now);
        await prefs.setString("version", currentVersion);
    }
    
    // There is previous version instance saved before so check if its the same with the current version
    if (previousVersion != null) {
      // check saved version and current version is different
      if (previousVersion != currentVersion) {
        // Update time
        await prefs.setString("latestTimeUpdated", now);
        await prefs.setString("version", currentVersion);
      }
      // Do nothing if saved version and current version is the same
    }
  }

不要忘记在 initState 上调用函数:

 @override
  void initState() {
    checkUpdateTime();
    super.initState();
  }

基本上; 这将 cross-check 您应用的当前版本和上次保存的版本。如果这些不相同,它将更新 latestTimeUpdated。然后在你的应用程序中任何你想要的地方:

SharedPreferences prefs = await SharedPreferences.getInstance();
String updateTimeUTCString = prefs.getString("latestTimeUpdated");

根据需要格式化此 updateTimeUTCString 并使用它。 我希望这对你有用。