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.
125 lines
3.7 KiB
125 lines
3.7 KiB
import 'dart:io';
|
|
|
|
import 'package:dating_touchme_app/config/env_config.dart';
|
|
import 'package:dating_touchme_app/controller/global.dart';
|
|
import 'package:dating_touchme_app/im/im_manager.dart';
|
|
import 'package:dating_touchme_app/network/network_service.dart';
|
|
import 'package:dating_touchme_app/pages/main/main_page.dart';
|
|
import 'package:dating_touchme_app/pages/mine/login_page.dart';
|
|
import 'package:dating_touchme_app/pages/mine/user_info_page.dart';
|
|
import 'package:dating_touchme_app/rtc/rtc_manager.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
|
import 'package:fluwx/fluwx.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:get_storage/get_storage.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
// 初始化GetStorage
|
|
await GetStorage.init();
|
|
|
|
// 设置环境配置 - 根据是否为release模式
|
|
EnvConfig.setEnvironment(Environment.dev);
|
|
await RTCManager.instance.initialize(appId: '4c2ea9dcb4c5440593a418df0fdd512d');
|
|
await IMManager.instance.initialize('1165251016193374#demo');
|
|
// 初始化全局依赖
|
|
final networkService = NetworkService();
|
|
Get.put(networkService);
|
|
Get.put(networkService.userApi);
|
|
Get.put(networkService.homeApi);
|
|
|
|
SystemChrome.setSystemUIOverlayStyle(
|
|
const SystemUiOverlayStyle(
|
|
statusBarColor: Colors.transparent,
|
|
statusBarIconBrightness: Brightness.dark,
|
|
statusBarBrightness: Brightness.light,
|
|
systemNavigationBarColor: Colors.white,
|
|
systemNavigationBarIconBrightness: Brightness.dark,
|
|
),
|
|
);
|
|
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
|
|
|
if (Platform.isIOS) {
|
|
SystemChrome.setEnabledSystemUIMode(
|
|
SystemUiMode.manual,
|
|
overlays: [SystemUiOverlay.top],
|
|
);
|
|
}
|
|
runApp(
|
|
GetMaterialApp(
|
|
locale: Get.locale, // 使用GetX的locale
|
|
supportedLocales: const [Locale('zh', 'CN')],
|
|
|
|
/// 国际化配置 代理
|
|
localizationsDelegates: const [
|
|
GlobalMaterialLocalizations.delegate,
|
|
GlobalWidgetsLocalizations.delegate,
|
|
GlobalCupertinoLocalizations.delegate, // iOS
|
|
],
|
|
theme: ThemeData(
|
|
scaffoldBackgroundColor: Colors.white,
|
|
// 设置导航栏样式
|
|
appBarTheme: AppBarTheme(
|
|
systemOverlayStyle: SystemUiOverlayStyle(
|
|
systemNavigationBarColor: Colors.white,
|
|
systemNavigationBarIconBrightness: Brightness.light,
|
|
),
|
|
),
|
|
),
|
|
builder: FlutterSmartDialog.init(),
|
|
home: MyApp(),
|
|
),
|
|
);
|
|
}
|
|
|
|
class MyApp extends StatefulWidget {
|
|
const MyApp({super.key});
|
|
|
|
@override
|
|
State<MyApp> createState() => _MyAppState();
|
|
}
|
|
|
|
class _MyAppState extends State<MyApp> {
|
|
|
|
Fluwx fluwx = Fluwx();
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
_initFluwx();
|
|
}
|
|
|
|
_initFluwx() async {
|
|
await fluwx.registerApi(
|
|
appId: 'wx57624b8918fdd95c',
|
|
doOnAndroid: true,
|
|
doOnIOS: true,
|
|
universalLink: 'https://your.univerallink.com/link/',
|
|
);
|
|
var result = await fluwx.isWeChatInstalled;
|
|
}
|
|
|
|
// This widget is the root of your application.
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
ScreenUtil.init(context, designSize: const Size(375, 812));
|
|
|
|
// 判断token是否为空
|
|
final storage = GetStorage();
|
|
final userId = storage.read<String>('userId');
|
|
|
|
// 如果token不为空,显示主页;如果token为空,显示登录页面
|
|
if (userId != null && userId.isNotEmpty) {
|
|
GlobalData().userId = userId;
|
|
return MainPage();
|
|
} else {
|
|
return LoginPage();
|
|
}
|
|
}
|
|
}
|
|
|
|
|