Update send FCM Token to Server

This commit is contained in:
anhtunz
2025-03-14 22:35:54 +07:00
parent a6fa3b1572
commit c21667606a
4 changed files with 23 additions and 4 deletions

View File

@@ -4,6 +4,7 @@ import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:sfm_app/product/services/api_services.dart';
import 'product/services/notification_services.dart';
import 'product/services/theme_services.dart';
import 'product/services/language_services.dart';
@@ -58,7 +59,7 @@ class _MyAppState extends State<MyApp> {
LanguageServices languageServices = LanguageServices();
ThemeServices themeServices = ThemeServices();
final NotificationServices notificationServices = NotificationServices();
APIServices apiServices = APIServices();
setLocale(Locale locale) {
_locale = locale;
mainBloc.sinkLanguage.add(_locale);
@@ -77,9 +78,15 @@ class _MyAppState extends State<MyApp> {
// notificationServices.setupInteractMessage();
notificationServices.getDeviceToken().then((token){
print("Firebase Token: $token");
sendNotificationToken(token);
});
}
void sendNotificationToken (String token) async {
int statusCode = await apiServices.sendNotificationToken(token);
log("Notification Send StatusCode : $statusCode");
}
@override
void didChangeDependencies() {
languageServices.getLocale().then((locale) => {setLocale(locale)});

View File

@@ -21,4 +21,5 @@ class APIPathConstants {
static const JOIN_GROUP_PATH = "/api/groups/join";
static const APPROVE_GROUP_PATH = "/api/groups/approve";
static const DEVICE_LOGS_PATH = "/api/device-logs";
static const NOTIFICATION_TOKEN_PATH = "/api/users/app-token";
}

View File

@@ -49,6 +49,17 @@ class APIServices {
return response.body;
}
Future<int> sendNotificationToken(String token) async{
String uid = await getUID();
Map<String,dynamic> body = {
"user_id": uid,
"app_token": token
};
int statusCode = await NetworkManager.instance!.updateDataInServer(
APIPathConstants.NOTIFICATION_TOKEN_PATH, body);
return statusCode;
}
Future<void> logOut(BuildContext context) async {
showDialog(
context: context,

View File

@@ -75,7 +75,7 @@ class NotificationServices {
importance: androidNotificationChannel.importance,
priority: Priority.high,
ticker: 'ticker',
actions: type == "warn1"
actions: type == "smoke_warning"
? [
const AndroidNotificationAction(
"id1",
@@ -117,9 +117,9 @@ class NotificationServices {
return const RawResourceAndroidNotificationSound("welcome");
} else if (type == "success") {
return const RawResourceAndroidNotificationSound("success_alert");
} else if (type == "warn1") {
} else if (type == "smoke_warning") {
return const RawResourceAndroidNotificationSound("warning_alarm");
} else if (type == "warn2") {
} else if (type == "battery_warning") {
return const RawResourceAndroidNotificationSound("new_alarm");
} else {
return const RawResourceAndroidNotificationSound("normal");