141 lines
5.2 KiB
Dart
141 lines
5.2 KiB
Dart
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(),
|
||
},
|
||
);
|
||
}
|
||
}
|