This commit is contained in:
2022-11-15 16:16:06 +08:00
parent 8c6d1b2add
commit 6e7304ff19
9 changed files with 167 additions and 34 deletions

View File

@@ -1,16 +1,22 @@
import 'package:chat/utils/network/http.dart';
import 'package:chat/utils/ui_tools.dart';
import 'package:package_info_plus/package_info_plus.dart';
class PublicProvider {
/// 检测更新
static Future checkUpgrade() async {
static Future checkUpgrade(PackageInfo? packageInfo) async {
try {
return await Http.get(
'version/check',
params: {
'version': '',
},
);
if (packageInfo == null) {
return null;
} else {
return await Http.get(
'version/check',
params: {
'package_name': packageInfo.packageName,
'version': packageInfo.version,
},
);
}
} catch (e) {
UiTools.toast(e.toString());
}

View File

@@ -1,6 +1,7 @@
import 'package:chat/views/home/index_page.dart';
import 'package:chat/views/public/app_page.dart';
import 'package:chat/views/public/scan_page.dart';
import 'package:chat/views/public/result_page.dart';
import 'package:chat/views/public/scan/index_page.dart';
import 'package:chat/views/public/transit_page.dart';
import 'package:chat/views/search/index_page.dart';
import 'package:get/get.dart';
@@ -12,6 +13,7 @@ abstract class AppRoutes {
static const String transit = '/transit';
static const String notfound = '/notfound';
static const String scan = '/scan';
static const String scanResult = '/scan/result';
static const String home = '/home';
static const String search = '/search';
@@ -27,6 +29,12 @@ abstract class AppRoutes {
GetPage(
name: AppRoutes.scan,
page: () => const ScanPage(),
children: [
GetPage(
name: '/result',
page: () => const ScanResultPage(),
),
],
),
GetPage(
name: AppRoutes.home,

View File

@@ -0,0 +1,48 @@
import 'package:chat/configs/app_colors.dart';
import 'package:chat/utils/ui_tools.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
class ScanResultPage extends StatelessWidget {
const ScanResultPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
String content = Get.arguments;
return Scaffold(
backgroundColor: AppColors.white,
appBar: AppBar(
title: const Text('扫码结果'),
actions: [
TextButton(
onPressed: () {
Clipboard.setData(
ClipboardData(
text: content,
),
);
UiTools.toast('复制成功');
},
child: const Text('复制结果'),
),
],
),
body: ListView(
padding: const EdgeInsets.symmetric(
horizontal: 16,
vertical: 8,
),
children: [
Text(
content,
style: const TextStyle(
height: 1.5,
fontSize: 16,
),
),
],
),
);
}
}

View File

@@ -1,4 +1,5 @@
import 'package:chat/configs/app_colors.dart';
import 'package:chat/routes/app_routes.dart';
import 'package:chat/routes/user_routes.dart';
import 'package:chat/utils/ui_tools.dart';
import 'package:flutter/material.dart';
@@ -24,17 +25,16 @@ class _ScanPageState extends State<ScanPage> {
switch (split.first) {
case 'TRANSFER':
//
Get.back(result: split.last);
break;
case 'BEFRIEND':
//
break;
case 'JOINGROUP':
//
break;
default:
UiTools.toast(str);
Get.offNamed(
AppRoutes.scanResult,
arguments: str,
);
}
}

View File

@@ -1,7 +1,7 @@
import 'package:chat/configs/app_colors.dart';
import 'package:chat/services/auth_service.dart';
import 'package:chat/views/home/widgets/pop_menu_item.dart';
import 'package:chat/views/public/scan_page.dart';
import 'package:chat/views/public/scan/index_page.dart';
import 'package:chat/widgets/custom_avatar.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';

View File

@@ -1,11 +1,13 @@
import 'package:adaptive_dialog/adaptive_dialog.dart';
import 'package:chat/configs/app_colors.dart';
import 'package:chat/providers/public_provider.dart';
import 'package:chat/routes/user_routes.dart';
import 'package:chat/services/auth_service.dart';
import 'package:chat/views/home/widgets/action_button.dart';
import 'package:chat/views/home/widgets/action_item.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:package_info_plus/package_info_plus.dart';
class UserSettingPage extends StatefulWidget {
const UserSettingPage({Key? key}) : super(key: key);
@@ -15,6 +17,18 @@ class UserSettingPage extends StatefulWidget {
}
class _UserSettingPageState extends State<UserSettingPage> {
PackageInfo? packageInfo;
@override
void initState() {
super.initState();
PackageInfo.fromPlatform().then((value) {
setState(() {
packageInfo = value;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -63,10 +77,12 @@ class _UserSettingPageState extends State<UserSettingPage> {
const SizedBox(height: 8),
ActionItem(
'版本更新',
extend: '1.0.0',
extend: packageInfo?.version,
isFirst: true,
isLast: true,
onTap: () {},
onTap: () async {
PublicProvider.checkUpgrade(packageInfo);
},
),
const SizedBox(height: 8),
ActionButton(

View File

@@ -1,3 +1,4 @@
import 'package:chat/configs/app_colors.dart';
import 'package:chat/providers/user_provider.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -20,18 +21,28 @@ class _UserSharePageState extends State<UserSharePage> {
body: FutureBuilder(
future: UserProvider.downloadUrl(),
builder: (context, AsyncSnapshot<String?> data) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
QrImage(
data: '${data.data}',
size: Get.width * 0.8,
),
const Text('扫一扫上面的二维码下载ZH-CHAT'),
],
),
);
return data.data != null
? Center(
child: Container(
decoration: BoxDecoration(
color: AppColors.white,
borderRadius: BorderRadius.circular(8),
),
padding: const EdgeInsets.all(16),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
QrImage(
data: '${data.data}',
size: Get.width * 0.8,
),
const Text('扫一扫上面的二维码下载ZH-CHAT'),
],
),
),
)
: Container();
},
),
);