SteamCloudGame/lib/main.dart
2025-01-07 19:40:39 +08:00

141 lines
5.2 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:game/network/NetworkConfig.dart';
import 'package:game/tools/home/message/message_center_page.dart';
import 'package:game/tools/home/my_home_page.dart';
import 'package:game/tools/home/search_page.dart';
import 'package:game/tools/home_page.dart';
import 'package:game/tools/login/login_page.dart';
import 'package:game/tools/me/bt_game_pad_page.dart';
import 'package:game/tools/me/edit_info_page.dart';
import 'package:game/tools/me/feedback_page.dart';
import 'package:game/tools/me/game_history_page.dart';
import 'package:game/tools/me/my_collect_page.dart';
import 'package:game/tools/me/property/expenses_page.dart';
import 'package:game/tools/me/property/income_page.dart';
import 'package:game/tools/me/property/property_page.dart';
import 'package:game/tools/me/set/about_page.dart';
import 'package:game/tools/me/set/real_name_page.dart';
import 'package:game/tools/me/set/setting_page.dart';
import 'package:game/tools/start_page.dart';
import 'common/EventBusUtil.dart';
import 'common/Global.dart';
Future<void> main() async {
runApp(const MyApp());
await runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
Global.initialize().then((e) {
Global();
runApp(const MyApp());
if (Platform.isAndroid) {
// 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后是为了在渲染后进行set赋值覆盖状态栏写在渲染之前MaterialApp组件会覆盖掉这个值。
SystemUiOverlayStyle systemUiOverlayStyle = const SystemUiOverlayStyle(statusBarColor: Colors.transparent);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
});
}, (error, stackTrace) {
print("error==$error");
});
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// 注册方法等待被原生通过invokeMethod唤起
Future<dynamic> nativeCallHandler(MethodCall methodCall) async {
switch (methodCall.method) {
case "exitGame":
print("object77777");
EventBusUtil.fire(RefreshUserdata());
break;
case "AlipaySuccess": //支付宝支付完成
// EasyLoading.showToast("支付成功");
EventBusUtil.fire(PaySuccess());
break;
case "wxPaySuccess": //微信支付完成
// EasyLoading.showToast("微信支付成功");
EventBusUtil.fire(PaySuccess());
break;
case "payError": //支付失败
EasyLoading.showToast("支付失败");
break;
case "SDKSuccess": //游戏Sdk是否初始化成功
NetworkConfig.isGameSdk = methodCall.arguments['SDKSuccess'];
break;
case "isBtOpen": //蓝牙状态
NetworkConfig.isBtOpen = methodCall.arguments['isBtOpen'];
EventBusUtil.fire(RefreshBtState());
print("NetworkConfig.isBtOpen==${NetworkConfig.isBtOpen}");
break;
case "btDevices": //蓝牙设备集合
NetworkConfig.btDevices = List<String>.from(methodCall.arguments['btDevices']);
print("NetworkConfig.btDevices==${NetworkConfig.btDevices}");
EventBusUtil.fire(RefreshBtState());
break;
case "connectionStatus": //蓝牙设备连接状态
NetworkConfig.connectionStatus = methodCall.arguments['connectionStatus'];
EventBusUtil.fire(RefreshBtState());
break;
}
}
@override
void initState() {
// TODO: implement initState
Global.method.setMethodCallHandler(nativeCallHandler);
super.initState();
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '蒸汽云游',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Color(0xFF074CE7)),
useMaterial3: true,
),
home: const StartPage(),
debugShowCheckedModeBanner: false,
builder: EasyLoading.init(),
routes: <String, WidgetBuilder>{
'/HomePage': (BuildContext context) => HomePage(),
'/MyHomePage': (BuildContext context) => MyHomePage(),
'/SearchPage': (BuildContext context) => SearchPage(),
'/LoginPage': (BuildContext context) => LoginPage(),
'/EditInfoPage': (BuildContext context) => EditInfoPage(),
'/PropertyPage': (BuildContext context) => PropertyPage(),
'/IncomePage': (BuildContext context) => IncomePage(),
'/ExpensesPage': (BuildContext context) => ExpensesPage(),
'/SettingPage': (BuildContext context) => SettingPage(),
'/RealNamePage': (BuildContext context) => RealNamePage(),
'/AboutPage': (BuildContext context) => AboutPage(),
'/MyCollectPage': (BuildContext context) => MyCollectPage(),
'/GameHistoryPage': (BuildContext context) => GameHistoryPage(),
'/FeedbackPage': (BuildContext context) => FeedbackPage(),
'/MessageCenterPage': (BuildContext context) => MessageCenterPage(),
'/BtGamePadPage': (BuildContext context) => BtGamePadPage(),
},
);
}
}