总是收到通知,只是处理程序在一段时间/通知数量后停止工作。
是否有人有一个稳定的 iOS 上 Flutter 后台通知处理配置,可以持续工作? 任何防止处理程序停止的见解或解决方案将不胜感激。
我正在开发一个 Flutter 应用程序,并配置了一个后台通知处理程序,以便在应用程序处于后台或终止状态时收到通知时执行某些任务。
全新安装后,处理程序可以正常工作(记录测试消息)。然而,在收到更多通知后(限制看起来是随机的,但通常在 9 左右),处理程序将停止被调用,就好像 iOS 已经终止了调用服务一样。为了让它再次工作,我必须等待一段未指定的时间,然后打开应用程序以重新注册处理程序。它会再次工作一段时间,直到停止,如所述。
处理程序被定义为顶级函数,并用 @pragma('vm:entry-point') 进行注释。它是从 main 方法注册的。
@pragma('vm:entry-point')
Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
print('Handling a background message: ${message.messageId}');
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
runApp(MyApp());
}
提前致谢!
这里:
@pragma('vm:entry-point')
Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
print('Handling a background message: ${message.messageId}');
}
你应该删除这一行:
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);