autosos_flutter/lib/main.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());
}
}
}