cara mengarahkan pengguna ke halaman saat diklik pemberitahuan

Jan 06 2021

Saya sedang mengerjakan aplikasi dan web flutter dengan server firebase. Saya mengirim pemberitahuan menggunakan fungsi cloud. Saya ingin mengarahkan pengguna ke halaman tertentu ketika mereka mendapatkan pemberitahuan dan mengkliknya. Untuk saat ini, aplikasi saya menampilkan 'beranda' ketika saya mendapat pemberitahuan dan mengekliknya. Bagaimana saya bisa mengarahkan ke 'request detail page' daripada 'home page' ketika pengguna mendapatkan pemberitahuan dan mengkliknya?

Jawaban

Shanto Jan 06 2021 at 21:19

Tambahkan ini di dalam file AndroidManifest

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

Di dalam data notifikasi, Tambahkan click_action dan parameter yang Anda butuhkan untuk menavigasi ke halaman tertentu

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

Saat pengguna mengklik notifikasi, salah satu dari tiga peristiwa ini akan terpicu bergantung pada status aplikasi Anda.

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

Ambil kembali data notifikasi dari pesan & navigasikan ke halaman yang Anda inginkan.

MuhammadTameemRafay Jan 06 2021 at 22:53

SecondScreen adalah nama kelas dari layar lainnya.

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

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

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