알림 클릭시 사용자를 페이지로 리디렉션하는 방법

Jan 06 2021

나는 firebase 서버로 flutter 앱과 웹에서 일하고 있습니다. 클라우드 기능을 사용하여 알림을 보냅니다. 사용자가 알림을 받고 클릭하면 특정 페이지로 리디렉션하고 싶습니다. 지금은 알림을 받고 클릭하면 앱에 '홈페이지'가 표시됩니다. 사용자가 알림을 받고 클릭 할 때 '홈 페이지'대신 '요청 상세 페이지'로 리디렉션하려면 어떻게해야합니까?

답변

Shanto Jan 06 2021 at 21:19

AndroidManifest 파일 내부에 추가

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

알림 데이터 내에서 click_action 및 특정 페이지로 이동하는 데 필요한 매개 변수를 추가합니다.

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

사용자가 알림을 클릭하면 앱 상태에 따라이 세 가지 이벤트 중 하나가 트리거됩니다.

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

메시지에서 알림 데이터를 검색하고 원하는 페이지로 이동합니다.

MuhammadTameemRafay Jan 06 2021 at 22:53

SecondScreen은 다른 화면의 클래스 이름입니다.

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

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

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