Я работаю над приложением 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.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);
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...