Как обрабатывать сообщения данных для завершенного приложенияAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как обрабатывать сообщения данных для завершенного приложения

Сообщение Anonymous »

Я создаю приложение чата, в котором все сообщения в реальном времени будут доставляться через сообщения данных FCM, а затем условно показывать уведомление с помощью Awesome_notifications. Поначалу у меня были некоторые проблемы, например, фоновый обработчик FCM не мог обновлять чаты и сообщения чатов, если приложение находится в фоновом режиме, экран выключен или даже пользователь открыл строку состояния. Я решил эти проблемы, используя изоляцию с портами приемника и отправки. всё хорошо. Проблема в том, что если приложение полностью закрывается, ничего не происходит. Я отследил и проверил весь свой код и все такое. все кажется правильным, но когда я пытаюсь запустить flutter, запустите --release и посмотрите, что он печатает при отправке сообщения с данными. Я понимаю это:

Код: Выделить всё

E/flutter (23959): [ERROR:flutter/lib/ui/dart_runtime_hooks.cc(38)] Dart Error: Dart_LookupLibrary: library 'package:mobile_app_v2/services/firebase_helper.dart' not found.
E/flutter (23959): [ERROR:flutter/shell/common/shell.cc(117)] Dart Error: Dart_LookupLibrary: library 'package:mobile_app_v2/services/firebase_helper.dart' not found.
E/flutter (23959): [ERROR:flutter/shell/common/shell.cc(117)] Dart Error: Dart_LookupLibrary: library 'package:mobile_app_v2/services/firebase_helper.dart' not found.
все, что нужно знать, это то, что firebase_helper.dart — это файл, который содержит инициализацию и привязку обработчиков FCM, таких как onMessage и onBackgroundMessage он вызывается перед runApp(const MyApp()); в main.dart.
firebase_helper.dart:

Код: Выделить всё

static void initializeFCMHandler() async {
FirebaseMessaging.onBackgroundMessage(handleBackgroundMessage);
FirebaseMessaging.onMessage.listen(handleMessage);
}

static Future handleBackgroundMessage(RemoteMessage? message) async {
NotificationService().pushNotification(
id: 200,
body: "Message From Background",
title: "Conversations",
category: NotificationCategory.Message,
payload: {
"screen": "chat",
},
);
handleDataMessage(message, isBackground: true);
}

static void handleMessage(RemoteMessage? message) async {
// check if message is notification
print(message?.data);
if (message?.notification != null) {
handleNotification(message);
} else {
handleDataMessage(message);
}
}
Я также попытался создать приложение в формате APK и установить его, но снова никакого ответа. ни уведомления, ничего. Я искал, и люди действительно могут успешно получать сообщения с данными, и все работает, так в чем же проблема? Я вижу, что у людей возникают проблемы только с iOS.

Подробнее здесь: https://stackoverflow.com/questions/791 ... inated-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»