添加版本更新检测功能

This commit is contained in:
jyuesong
2022-01-21 13:39:00 +08:00
parent 6cc810b9b1
commit ae7368ecbc
8 changed files with 439 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ import 'package:qinglong_app/module/env/env_page.dart';
import 'package:qinglong_app/module/others/other_page.dart';
import 'package:qinglong_app/module/task/task_page.dart';
import 'package:move_to_background/move_to_background.dart';
import 'package:qinglong_app/utils/update_utils.dart';
class HomePage extends ConsumerStatefulWidget {
const HomePage({Key? key}) : super(key: key);
@@ -30,6 +31,9 @@ class _HomePageState extends ConsumerState<HomePage> {
initTitles();
_title = titles[0].title;
super.initState();
WidgetsBinding.instance?.addPostFrameCallback((timeStamp) {
update();
});
}
@override
@@ -185,6 +189,16 @@ class _HomePageState extends ConsumerState<HomePage> {
),
);
}
void update() async {
String? result = await UpdateUtils().checkUpdate();
if (result != null && result.isNotEmpty) {
UpdateDialog updateDialog = UpdateDialog(context, title: "发现新版本", updateContent: "版本号:v$result", onUpdate: () {
UpdateUtils.launchURL(result);
});
updateDialog.show();
}
}
}
class IndexBean {

View File

@@ -9,6 +9,7 @@ import 'package:qinglong_app/base/userinfo_viewmodel.dart';
import 'package:qinglong_app/main.dart';
import 'package:qinglong_app/module/login/user_bean.dart';
import 'package:qinglong_app/utils/extension.dart';
import 'package:qinglong_app/utils/update_utils.dart';
import 'package:qinglong_app/utils/utils.dart';
import 'package:flip_card/flip_card.dart';
@@ -57,6 +58,7 @@ class _LoginPageState extends ConsumerState<LoginPage> {
}
getIt<UserInfoViewModel>().updateToken("");
WidgetsBinding.instance?.addPostFrameCallback((timeStamp) {
update();
if (useSecretLogin) {
cardKey.currentState?.toggleCard();
}
@@ -483,4 +485,14 @@ class _LoginPageState extends ConsumerState<LoginPage> {
}
});
}
void update() async {
String? result = await UpdateUtils().checkUpdate();
if (result != null && result.isNotEmpty) {
UpdateDialog updateDialog = UpdateDialog(context, title: "发现新版本", updateContent: "版本号:v${result}", onUpdate: () {
UpdateUtils.launchURL(result);
});
updateDialog.show();
}
}
}

View File

@@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:qinglong_app/base/ql_app_bar.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:qinglong_app/base/theme.dart';
import 'package:qinglong_app/utils/update_utils.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../main.dart';
@@ -23,6 +24,20 @@ class _AboutPageState extends ConsumerState<AboutPage> {
void initState() {
super.initState();
getInfo();
WidgetsBinding.instance?.addPostFrameCallback((timeStamp) {
update();
});
}
void update() async {
String? result = await UpdateUtils().checkUpdate(true);
if (result != null && result.isNotEmpty) {
UpdateDialog updateDialog = UpdateDialog(context, title: "发现新版本", updateContent: "版本号:v${result}", onUpdate: () {
UpdateUtils.launchURL(result);
});
updateDialog.show();
}
}
@override

View File

@@ -270,6 +270,7 @@ class TaskItemCell extends StatelessWidget {
child: Text(
bean.name ?? "",
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
overflow: TextOverflow.ellipsis,
color: ref.watch(themeProvider).themeColor.titleColor(),