在混乱中,当用户被禁止时,我正在将FCM数据发送到设备。我在myBackgroundMessageHandler
内处理此操作,将banned
变量设置为true
。如果收到FCM消息时该应用程序在后台运行,那么当该应用程序返回到前台时,我想导航到禁止的页面。我使用didChangeAppLifecycleState
处理此问题,但问题是它没有检测到banned
变量的变化,该变量始终被评估为false
。
bool banned = false;
class _MainScreenState extends State<MainScreen> with WidgetsBindingObserver {
void didChangeAppLifecycleState(AppLifecycleState state) async {
if (state == AppLifecycleState.resumed) {
if (banned) {
Navigator.of(context).pushReplacementNamed('banned');
}
}
}
_fcm.configure(
onMessage: (Map<String, dynamic> message) async {
},
onBackgroundMessage: myBackgroundMessageHandler,
});
}
Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) {
if (message['data']['title'] == "banned") {
banned = true;
}
}