所以我的应用程序要求我存储通知,以便用户稍后可以在屏幕上看到它们。
无论应用程序正在运行、在后台还是已终止,一切都在 android 上运行良好。对于 ios,我可以在应用程序运行时捕获通知。
但问题是每当应用程序终止时,我仍然可以发送 ios 通知并且设备显示通知但未注册数据有效负载(如果应用程序终止但用户单击通知并启动应用程序,它也可以工作)
这是 fcm 配置代码 show notification 只是显示通知的本地通知插件,它将通知保存在共享首选项中。
_fcm.configure(
onBackgroundMessage: Platform.isIOS ? null : backgroundMessageHandler,
onMessage: (Map<String, dynamic> message) async {
logger.d("onMessage: $message");
try {
showNotifications(message);
} catch (e) {
print('PushNotificationService.initialise error: $e');
}
},
onLaunch: (Map<String, dynamic> message) async {
logger.d("onLaunch: $message");
showNotifications(message);
},
onResume: (Map<String, dynamic> message) async {
try {
logger.d("onResume: $message");
showNotifications(message);
} catch (e) {
print('PushNotificationService.initialise e: $e');
}
},
);
即使 ios 应用程序终止,有没有办法捕获和处理数据有效负载。