jak przekierować użytkowników do strony po kliknięciu powiadomienia

Jan 06 2021

Pracuję nad aplikacją Flutter i siecią na serwerze Firebase. Wysyłam powiadomienia za pomocą funkcji chmury. Chcę przekierować użytkowników na określoną stronę, gdy otrzymają powiadomienie i klikną na nią. Na razie moja aplikacja wyświetla „stronę główną”, gdy otrzymuję powiadomienie i klikam na nią. Jak mogę przekierować do „strony z prośbą o szczegóły” zamiast „strony głównej”, gdy użytkownicy otrzymają powiadomienie i klikną je?

Odpowiedzi

Shanto Jan 06 2021 at 21:19

Dodaj to do pliku AndroidManifest

<intent-filter>
  <action android:name="FLUTTER_NOTIFICATION_CLICK" />
  <category android:name="android.intent.category.DEFAULT" />

Wewnętrzne dane powiadomień, dodaj śmiałość kliknięcia i parametr wymagany do przejścia do określonej strony

'data': {
     'click_action': 'FLUTTER_NOTIFICATION_CLICK',
     'product_id': 1,
     ...
   },

Gdy użytkownik kliknie powiadomienie, jedno z tych trzech zdarzeń zostanie wyzwolone w zależności od stanu aplikacji.

_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);
  },
);

Pobierz ponownie dane powiadomień z wiadomości i przejdź do żądanej strony.

MuhammadTameemRafay Jan 06 2021 at 22:53

SecondScreen to nazwa klasy innego ekranu.

_firebaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async {

         Navigator.push(context,
                MaterialPageRoute(builder: (BuildContext context) {
              return SecondScreen(
                message,
              );
            }));

        print("onMessage: $message");
        _showItemDialog(message);
      },
     
    );