如何在 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 并使用它。
我希望这对你有用。
我想在 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 并使用它。 我希望这对你有用。