import 'dart:io'; import 'package:autosos_flutter/config/theme_colors.dart'; import 'package:autosos_flutter/pages/login/login_page.dart'; import 'package:autosos_flutter/util/sp_util.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:getuiflut/getuiflut.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'config/getui_constant.dart'; void main() { SharedPreferences.setMockInitialValues({}); runApp(const MyApp()); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: ThemeColors.primary), useMaterial3: true, ), home: const LoginPage(), builder: EasyLoading.init(), ); } String _platformVersion = 'Unknown'; String _payloadInfo = 'Null'; String _userMsg = ""; String _notificationState = ""; String _getClientId = ""; String _getDeviceToken = ""; String _onReceivePayload = ""; String _onReceiveNotificationResponse = ""; String _onAppLinkPayLoad = ""; SPUtil spUtil = SPUtil(); @override void initState() { super.initState(); initPlatformState(); } // Platform messages are asynchronous, so we initialize in an async method. Future initPlatformState() async { String platformVersion; String payloadInfo = "default"; String notificationState = "default"; // Platform messages may fail, so we use a try/catch PlatformException. if (Platform.isIOS) { getSdkVersion(); Getuiflut().startSdk( appId: GetuiConstant.appId, appKey: GetuiConstant.appKey, appSecret: GetuiConstant.appSecret); } try { platformVersion = await Getuiflut.platformVersion; print('platformVersion' + platformVersion); } on PlatformException { platformVersion = 'Failed to get platform version.'; } // If the widget was removed from the tree while the asynchronous platform // message was in flight, we want to discard the reply rather than calling // setState to update our non-existent appearance. if (!mounted) return; setState(() { _platformVersion = platformVersion; _payloadInfo = payloadInfo; _notificationState = notificationState; }); Getuiflut().addEventHandler(onReceiveClientId: (String message) async { print("flutter onReceiveClientId: $message"); spUtil.setString("clientId", message); setState(() { _getClientId = "ClientId: $message"; }); }, onReceiveMessageData: (Map msg) async { print("flutter onReceiveMessageData: $msg"); setState(() { _payloadInfo = msg['payload']; }); }, onNotificationMessageArrived: (Map msg) async { print("flutter onNotificationMessageArrived: $msg"); setState(() { _notificationState = 'Arrived'; }); }, onNotificationMessageClicked: (Map msg) async { print("flutter onNotificationMessageClicked: $msg"); setState(() { _notificationState = 'Clicked'; }); }, onTransmitUserMessageReceive: (Map msg) async { print("flutter onTransmitUserMessageReceive:$msg"); setState(() { _userMsg = msg["msg"]; }); }, onRegisterDeviceToken: (String message) async { print("flutter onRegisterDeviceToken: $message"); setState(() { _getDeviceToken = "$message"; }); }, onReceivePayload: (Map message) async { print("flutter onReceivePayload: $message"); setState(() { _onReceivePayload = "$message"; }); }, onReceiveNotificationResponse: (Map message) async { print("flutter onReceiveNotificationResponse: $message"); setState(() { _onReceiveNotificationResponse = "$message"; }); }, onAppLinkPayload: (String message) async { print("flutter onAppLinkPayload: $message"); setState(() { _onAppLinkPayLoad = "$message"; }); }, onPushModeResult: (Map message) async { print("flutter onPushModeResult: $message"); }, onSetTagResult: (Map message) async { print("flutter onSetTagResult: $message"); }, onAliasResult: (Map message) async { print("flutter onAliasResult: $message"); }, onQueryTagResult: (Map message) async { print("flutter onQueryTagResult: $message"); }, onWillPresentNotification: (Map message) async { print("flutter onWillPresentNotification: $message"); }, onOpenSettingsForNotification: (Map message) async { print("flutter onOpenSettingsForNotification: $message"); }, onGrantAuthorization: (String granted) async { print("flutter onGrantAuthorization: $granted"); }, onLiveActivityResult: (Map message) async { print("flutter onLiveActivityResult: $message"); }); } Future initGetuiSdk() async { try { Getuiflut.initGetuiSdk; } catch (e) { e.toString(); } } Future getClientId() async { String getClientId; try { getClientId = await Getuiflut.getClientId; print(getClientId); } catch (e) { print(e.toString()); } } Future getSdkVersion() async { String ver; try { ver = await Getuiflut.sdkVersion; print(ver); } catch (e) { print(e.toString()); } } Future getLaunchNotification() async { Map info; try { info = await Getuiflut.getLaunchNotification; print(info); } catch (e) { print(e.toString()); } } }