come reindirizzare gli utenti a una pagina al clic di notifica
Sto lavorando su flutter app e web con server firebase. Invio notifiche utilizzando le funzioni cloud. Desidero reindirizzare gli utenti a una pagina specifica quando ricevono una notifica e fanno clic su di essa. Per ora, la mia app mostra la "home page" quando ricevo una notifica e faccio clic su di essa. Come posso reindirizzare alla "pagina dei dettagli della richiesta" invece che alla "home page" quando gli utenti ricevono una notifica e fanno clic su di essa?
Risposte
Aggiungilo all'interno del file AndroidManifest
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
All'interno dei dati di notifica, aggiungi click_action e il parametro richiesto per la navigazione a una pagina specifica
'data': {
'click_action': 'FLUTTER_NOTIFICATION_CLICK',
'product_id': 1,
...
},
Quando l'utente fa clic sulla notifica, uno di questi tre eventi si attiverà a seconda dello stato dell'app.
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message"); _showItemDialog(message); }, onBackgroundMessage: myBackgroundMessageHandler, onLaunch: (Map<String, dynamic> message) async { print("onLaunch: $message");
_navigateToItemDetail(message);
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
_navigateToItemDetail(message);
},
);
Recupera i dati di notifica dal messaggio e vai alla pagina desiderata.
SecondScreen è il nome della classe di un altro schermo.
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
Navigator.push(context,
MaterialPageRoute(builder: (BuildContext context) {
return SecondScreen(
message,
);
}));
print("onMessage: $message");
_showItemDialog(message);
},
);