通知クリック時にユーザーをページにリダイレクトする方法

Jan 06 2021

Firebaseサーバーを使用してフラッターアプリとウェブに取り組んでいます。クラウド機能を使って通知を送信します。ユーザーが通知を受け取ってクリックしたときに、ユーザーを特定のページにリダイレクトしたいと思います。今のところ、通知を受け取ってクリックすると、アプリに「ホームページ」が表示されます。ユーザーが通知を受け取ってクリックしたときに、「ホームページ」ではなく「リクエスト詳細ページ」にリダイレクトするにはどうすればよいですか?

回答

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,
     ...
   },

ユーザーが通知をクリックすると、アプリの状態に応じて、これら3つのイベントのいずれかがトリガーされます。

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