通知クリック時にユーザーをページにリダイレクトする方法
Firebaseサーバーを使用してフラッターアプリとウェブに取り組んでいます。クラウド機能を使って通知を送信します。ユーザーが通知を受け取ってクリックしたときに、ユーザーを特定のページにリダイレクトしたいと思います。今のところ、通知を受け取ってクリックすると、アプリに「ホームページ」が表示されます。ユーザーが通知を受け取ってクリックしたときに、「ホームページ」ではなく「リクエスト詳細ページ」にリダイレクトするにはどうすればよいですか?
回答
Shanto
これを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
SecondScreenは、他の画面のクラス名です。
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
Navigator.push(context,
MaterialPageRoute(builder: (BuildContext context) {
return SecondScreen(
message,
);
}));
print("onMessage: $message");
_showItemDialog(message);
},
);