198 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Dart
		
	
	
			
		
		
	
	
			198 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Dart
		
	
	
| 
 | |
| 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<MyApp> {
 | |
|   // 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<void> 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<String, dynamic> msg) async {
 | |
|       print("flutter onReceiveMessageData: $msg");
 | |
|       setState(() {
 | |
|         _payloadInfo = msg['payload'];
 | |
|       });
 | |
|     }, onNotificationMessageArrived: (Map<String, dynamic> msg) async {
 | |
|       print("flutter onNotificationMessageArrived: $msg");
 | |
|       setState(() {
 | |
|         _notificationState = 'Arrived';
 | |
|       });
 | |
|     }, onNotificationMessageClicked: (Map<String, dynamic> msg) async {
 | |
|       print("flutter onNotificationMessageClicked: $msg");
 | |
|       setState(() {
 | |
|         _notificationState = 'Clicked';
 | |
|       });
 | |
|     }, onTransmitUserMessageReceive: (Map<String, dynamic> msg) async {
 | |
|       print("flutter onTransmitUserMessageReceive:$msg");
 | |
|       setState(() {
 | |
|         _userMsg = msg["msg"];
 | |
|       });
 | |
|     }, onRegisterDeviceToken: (String message) async {
 | |
|       print("flutter onRegisterDeviceToken: $message");
 | |
|       setState(() {
 | |
|         _getDeviceToken = "$message";
 | |
|       });
 | |
|     }, onReceivePayload: (Map<String, dynamic> message) async {
 | |
|       print("flutter onReceivePayload: $message");
 | |
|       setState(() {
 | |
|         _onReceivePayload = "$message";
 | |
|       });
 | |
|     }, onReceiveNotificationResponse: (Map<String, dynamic> message) async {
 | |
|       print("flutter onReceiveNotificationResponse: $message");
 | |
|       setState(() {
 | |
|         _onReceiveNotificationResponse = "$message";
 | |
|       });
 | |
|     }, onAppLinkPayload: (String message) async {
 | |
|       print("flutter onAppLinkPayload: $message");
 | |
|       setState(() {
 | |
|         _onAppLinkPayLoad = "$message";
 | |
|       });
 | |
|     }, onPushModeResult: (Map<String, dynamic> message) async {
 | |
|       print("flutter onPushModeResult: $message");
 | |
|     }, onSetTagResult: (Map<String, dynamic> message) async {
 | |
|       print("flutter onSetTagResult: $message");
 | |
|     }, onAliasResult: (Map<String, dynamic> message) async {
 | |
|       print("flutter onAliasResult: $message");
 | |
|     }, onQueryTagResult: (Map<String, dynamic> message) async {
 | |
|       print("flutter onQueryTagResult: $message");
 | |
|     }, onWillPresentNotification: (Map<String, dynamic> message) async {
 | |
|       print("flutter onWillPresentNotification: $message");
 | |
|     }, onOpenSettingsForNotification: (Map<String, dynamic> message) async {
 | |
|       print("flutter onOpenSettingsForNotification: $message");
 | |
|     }, onGrantAuthorization: (String granted) async {
 | |
|       print("flutter onGrantAuthorization: $granted");
 | |
|     }, onLiveActivityResult: (Map<String, dynamic> message) async {
 | |
|       print("flutter onLiveActivityResult: $message");
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   Future<void> initGetuiSdk() async {
 | |
|     try {
 | |
|       Getuiflut.initGetuiSdk;
 | |
|     } catch (e) {
 | |
|       e.toString();
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   Future<void> getClientId() async {
 | |
|     String getClientId;
 | |
|     try {
 | |
|       getClientId = await Getuiflut.getClientId;
 | |
|       print(getClientId);
 | |
|     } catch (e) {
 | |
|       print(e.toString());
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   Future<void> getSdkVersion() async {
 | |
|     String ver;
 | |
|     try {
 | |
|       ver = await Getuiflut.sdkVersion;
 | |
|       print(ver);
 | |
|     } catch (e) {
 | |
|       print(e.toString());
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   Future<void> getLaunchNotification() async {
 | |
|     Map info;
 | |
|     try {
 | |
|       info = await Getuiflut.getLaunchNotification;
 | |
|       print(info);
 | |
|     } catch (e) {
 | |
|       print(e.toString());
 | |
|     }
 | |
|   }
 | |
| 
 | |
| }
 |