You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
3.9 KiB
118 lines
3.9 KiB
2 years ago
|
import 'package:cloud_car_internal/ui/login/login_page.dart';
|
||
|
import 'package:cloud_car_internal/ui/tab_navigator.dart';
|
||
|
import 'package:cloud_car_internal/utils/hive_util.dart';
|
||
|
import 'package:flutter/cupertino.dart';
|
||
|
import 'package:flutter/foundation.dart';
|
||
|
import 'package:flutter/gestures.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
import 'package:get/get.dart';
|
||
|
import 'package:provider/provider.dart';
|
||
|
|
||
|
import '../../constants/environment/environment.dart';
|
||
|
import '../../providers/user_provider.dart';
|
||
|
|
||
|
class SplashPage extends StatefulWidget {
|
||
|
const SplashPage({super.key});
|
||
|
|
||
|
@override
|
||
|
_SplashPageState createState() => _SplashPageState();
|
||
|
}
|
||
|
|
||
|
class _SplashPageState extends State<SplashPage> {
|
||
|
final TapGestureRecognizer _agreementRecognizer = TapGestureRecognizer();
|
||
|
final TapGestureRecognizer _privacyRecognizer = TapGestureRecognizer();
|
||
|
|
||
|
Future initialAll() async {
|
||
|
///第三方加载
|
||
|
await HiveUtil.init();
|
||
|
// var agreement = await HiveStore.appBox?.get('agreement') ?? false;
|
||
|
// if (!agreement) {
|
||
|
// var result = await _showLoginVerify();
|
||
|
// if (result == null || !result) {
|
||
|
// await SystemNavigator.pop();
|
||
|
// await HiveStore.appBox?.put('agreement', false);
|
||
|
// } else {
|
||
|
// await HiveStore.appBox?.put('agreement', true);
|
||
|
// }
|
||
|
// }
|
||
|
///Providers 初始化
|
||
|
}
|
||
|
|
||
|
Future<bool?> _showLoginVerify() async {
|
||
|
return await showCupertinoDialog(
|
||
|
barrierDismissible: false,
|
||
|
context: context,
|
||
|
builder: (context) {
|
||
|
return CupertinoAlertDialog(
|
||
|
title: const Text('隐私政策和用户协议'),
|
||
|
content: RichText(
|
||
|
text: TextSpan(
|
||
|
text: '点击登录即表示您已阅读并同意',
|
||
|
style: const TextStyle(color: Colors.black),
|
||
|
children: [
|
||
|
TextSpan(
|
||
|
text: '《用户协议》',
|
||
|
style: const TextStyle(color: Colors.blue),
|
||
|
recognizer: _agreementRecognizer
|
||
|
..onTap = () {
|
||
|
// Get.to(() => AgreementPage());
|
||
|
}),
|
||
|
TextSpan(
|
||
|
text: '《隐私政策》',
|
||
|
style: const TextStyle(color: Colors.blue),
|
||
|
recognizer: _privacyRecognizer
|
||
|
..onTap = () {
|
||
|
// Get.to(() => PrivacyPage());
|
||
|
}),
|
||
|
const TextSpan(
|
||
|
style: TextStyle(color: Colors.black),
|
||
|
text:
|
||
|
'(特别是免除或限制责任、管辖等粗体下划线标注的条款)。如您不同意上述协议的任何条款,您应立即停止登录及使用本软件及服务。')
|
||
|
]),
|
||
|
),
|
||
|
|
||
|
// ),
|
||
|
actions: [
|
||
|
CupertinoDialogAction(
|
||
|
onPressed: () => Get.back(result: true),
|
||
|
child: const Text('同意'),
|
||
|
),
|
||
|
CupertinoDialogAction(
|
||
|
onPressed: () => Get.back(result: false),
|
||
|
child: const Text('拒绝'),
|
||
|
),
|
||
|
],
|
||
|
);
|
||
|
},
|
||
|
);
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
void initState() {
|
||
|
super.initState();
|
||
|
final userProvider = Provider.of<UserProvider>(context, listen: false);
|
||
|
var env = const String.fromEnvironment('ENV', defaultValue: 'dev');
|
||
|
if (kDebugMode) {
|
||
|
print('env :$env');
|
||
|
}
|
||
|
DevEV.instance.setEnvironment( context, environment: env == 'dev',);
|
||
|
Future.delayed(const Duration(milliseconds: 1000), () async {
|
||
|
await initialAll();
|
||
|
if (!await userProvider.init()) {
|
||
|
await Get.offAll(() => const LoginPage());
|
||
|
} else {
|
||
|
await Get.offAll(() => const TabNavigator());
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return const Scaffold(
|
||
|
body: Center(
|
||
|
child: CircularProgressIndicator(),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|