Я работаю над приложением Flutter, которое использует Firebase для уведомлений. Прямо сейчас уведомления работают нормально, когда приложение Flutter находится в фоновом режиме. Однако, когда я закрываю приложение, уведомление не проходит. Прямо сейчас моя целевая платформа - Android (и устройство, которое я использую, является Android версия 11). < /P>
Вот мой бэкэнд -код или, по крайней мере, та часть, которая отправляет уведомления (это сервер колбы): < /p>
import firebase_admin
from firebase_admin import auth, messaging, credentials
cred = credentials.Certificate("service-account.json")
firebase_admin.initialize_app(cred)
message = messaging.Message(
notification=messaging.Notification(
title="Wow!",
body="This background push notification actually worked!"
),
data={
"foo": "bar"
},
android=messaging.AndroidConfig(
notification=messaging.AndroidNotification(
title="Wow!",
body="This background push notification actually worked!",
channel_id="high_importance_channel",
priority="high"
),
priority="high"
),
topic="current"
)
response = messaging.send(message)
print(response)
< /code>
Изменить: я добавил данные в код выше, чтобы показать, что он ничего не меняет, уведомления по -прежнему отправляют только в фоновом режиме, а не в случае прекращения приложения.@pragma('vm:entry-point')
Future notificationHandler(RemoteMessage message) async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
const AndroidNotificationChannel channel = AndroidNotificationChannel(
'high_importance_channel',
'High Importance Notifications',
description: 'This channel is used for important notifications.',
importance: Importance.high
);
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
await flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation()?.createNotificationChannel(channel);
await flutterLocalNotificationsPlugin.initialize(
InitializationSettings(
android: AndroidInitializationSettings('background')
)
);
await flutterLocalNotificationsPlugin.show(
0,
message.notification?.title,
message.notification?.body,
NotificationDetails(
android: AndroidNotificationDetails(
'high_importance_channel',
'High Importance Notifications',
importance: Importance.high
)
)
);
if (message.notification?.title == 'Awards') {
await FirebaseMessaging.instance.unsubscribeFromTopic('current');
}
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
androidProvider: AndroidProvider.playIntegrity,
appleProvider: AppleProvider.appAttest
);
if (FirebaseAuth.instance.currentUser == null) {
await FirebaseAuth.instance.signInAnonymously();
}
final messaging = FirebaseMessaging.instance;
await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true
);
const AndroidNotificationChannel channel = AndroidNotificationChannel(
'high_importance_channel',
'High Importance Notifications',
description: 'This channel is used for important notifications.',
importance: Importance.high
);
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
await flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation()?.createNotificationChannel(channel);
await flutterLocalNotificationsPlugin.initialize(
InitializationSettings(
android: AndroidInitializationSettings('background')
)
);
FirebaseMessaging.onBackgroundMessage(notificationHandler);
< /code>
Изменить: вот часть, где я подписываюсь на тему: < /p>
void _onCardEntryComplete() async {
await FirebaseMessaging.instance.subscribeToTopic('current');
if (mounted) Navigator.of(context).pushNamed('/register');
}
Этот фрагмент взят из функции для завершения поток записи карты (я использую пакет Flutter square_in_app_payments для обработки платежа). Как только приложение увидит, что платеж успешен, он подписывает пользователя на тему. Тем не менее, уведомления до сих пор не появляются, поэтому они ничего не изменили, но, по крайней мере, это одно исправлено. Я попытался изменить AndroidManifest.xml, проверить оптимизацию батареи и т. Д. Мне также интересно, отправляю сообщения неправильно от бэкэнда. И просто чтобы прояснить, когда я говорю, что «уведомление не проходит», я имею в виду, что на главном экране моего устройства, когда я отправляю уведомление, в подносе нет уведомления. Я не вижу никаких уведомлений в моей истории уведомлений. И, конечно, нет никакого звука или отображения.>
Я работаю над приложением Flutter, которое использует Firebase для уведомлений. Прямо сейчас уведомления работают нормально, когда приложение Flutter находится в фоновом режиме. Однако, когда я закрываю приложение, уведомление не проходит. Прямо сейчас моя целевая платформа - Android (и устройство, которое я использую, является Android версия 11). < /P> Вот мой бэкэнд -код или, по крайней мере, та часть, которая отправляет уведомления (это сервер колбы): < /p> [code]import firebase_admin from firebase_admin import auth, messaging, credentials
print(response) < /code> Изменить: я добавил данные в код выше, чтобы показать, что он ничего не меняет, уведомления по -прежнему отправляют только в фоновом режиме, а не в случае прекращения приложения.@pragma('vm:entry-point') Future notificationHandler(RemoteMessage message) async { WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
const AndroidNotificationChannel channel = AndroidNotificationChannel( 'high_importance_channel', 'High Importance Notifications', description: 'This channel is used for important notifications.', importance: Importance.high );
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
const AndroidNotificationChannel channel = AndroidNotificationChannel( 'high_importance_channel', 'High Importance Notifications', description: 'This channel is used for important notifications.', importance: Importance.high );
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
FirebaseMessaging.onBackgroundMessage(notificationHandler); < /code> Изменить: вот часть, где я подписываюсь на тему: < /p> void _onCardEntryComplete() async { await FirebaseMessaging.instance.subscribeToTopic('current');
if (mounted) Navigator.of(context).pushNamed('/register'); } [/code] Этот фрагмент взят из функции для завершения поток записи карты (я использую пакет Flutter square_in_app_payments для обработки платежа). Как только приложение увидит, что платеж успешен, он подписывает пользователя на тему. Тем не менее, уведомления до сих пор не появляются, поэтому они ничего не изменили, но, по крайней мере, это одно исправлено. Я попытался изменить AndroidManifest.xml, проверить оптимизацию батареи и т. Д. Мне также интересно, отправляю сообщения неправильно от бэкэнда. И просто чтобы прояснить, когда я говорю, что «уведомление не проходит», я имею в виду, что на главном экране моего устройства, когда я отправляю уведомление, в подносе нет уведомления. Я не вижу никаких уведомлений в моей истории уведомлений. И, конечно, нет никакого звука или отображения.>
Я работаю над приложением Flutter, которое использует Firebase для уведомлений. Прямо сейчас уведомления работают нормально, когда приложение Flutter находится в фоновом режиме. Однако, когда я закрываю приложение, уведомление не проходит. Прямо...
Я работаю над приложением Flutter, которое использует Firebase для уведомлений. Прямо сейчас уведомления работают нормально, когда приложение Flutter находится в фоновом режиме. Однако, когда я закрываю приложение, уведомление не проходит. Прямо...
Я работаю над приложением Flutter, которое использует Firebase для уведомлений. Прямо сейчас уведомления работают нормально, когда приложение Flutter находится в фоновом режиме. Однако, когда я закрываю приложение, уведомление не проходит. Прямо...
im Использую пакет Laravel-notification-каналов /FCM для отправки уведомлений на все мои устройства
У меня есть таблица и модель с именем
devicetoken.php, в которых хранится все Devicetokens /fcm_tokens of Devices
devicetoken.php model...
im Использую пакет Laravel-notification-каналов /FCM для отправки уведомлений на все мои устройства
У меня есть таблица и модель с именем
devicetoken.php, в которых хранится все Devicetokens /fcm_tokens of Devices
devicetoken.php model...