Flutter集成OneSignal后出现前台重复通知问题
解决OneSignal前台重复通知问题
问题原因
应用处于前台时,OneSignal默认会把通知推送到系统通知栏,同时你又通过setNotificationWillShowInForegroundHandler回调自定义了Snackbar展示通知,导致同一通知被两次展示。
解决方案
修改前台通知处理方法,在自定义展示Snackbar后,调用event.complete(null)阻止OneSignal显示默认的系统通知:
static _localNotificationsHandler(OSNotificationReceivedEvent event) { // 自定义展示Snackbar AppSnackbar.openNotificationsSnackbar( title: event.notification.title ?? '', msg: event.notification.body ?? '', ); // 阻止系统通知栏显示该通知 event.complete(null); }
补充说明
event.complete(null)用于告知OneSignal:无需将该通知转发到系统通知栏,完全由开发者自行处理展示逻辑。- 如果后续需要在特定场景下同时保留系统通知和自定义展示,可通过条件判断决定是否调用
event.complete(null)。
内容的提问来源于stack exchange,提问作者Ali Alqallaf
相关产品推荐
相关产品推荐

