So leiten Sie Benutzer bei Benachrichtigung auf eine Seite um, indem Sie auf klicken
Ich arbeite an Flatter-App und Web mit Firebase-Server. Ich sende Benachrichtigungen über Cloud-Funktionen. Ich möchte Benutzer auf eine bestimmte Seite umleiten, wenn sie eine Benachrichtigung erhalten, und darauf klicken. Im Moment zeigt meine App "Homepage" an, wenn ich eine Benachrichtigung erhalte und darauf klicke. Wie kann ich auf "Detailseite anfordern" anstatt auf "Startseite" umleiten, wenn Benutzer eine Benachrichtigung erhalten und darauf klicken?
Antworten
Fügen Sie dies in die AndroidManifest-Datei ein
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
Fügen Sie in den Benachrichtigungsdaten click_action und Ihren erforderlichen Parameter für die Navigation zu einer bestimmten Seite hinzu
'data': {
'click_action': 'FLUTTER_NOTIFICATION_CLICK',
'product_id': 1,
...
},
Wenn der Benutzer auf die Benachrichtigung klickt, wird abhängig von Ihrem App-Status eines dieser drei Ereignisse ausgelöst.
_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);
},
);
Rufen Sie die Benachrichtigungsdaten aus der Nachricht ab und navigieren Sie zu Ihrer gewünschten Seite.
SecondScreen ist der Klassenname eines anderen Bildschirms.
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
Navigator.push(context,
MaterialPageRoute(builder: (BuildContext context) {
return SecondScreen(
message,
);
}));
print("onMessage: $message");
_showItemDialog(message);
},
);