วิธีเปลี่ยนเส้นทางผู้ใช้ไปยังเพจเมื่อคลิกการแจ้งเตือน

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

เมื่อผู้ใช้คลิกที่การแจ้งเตือนหนึ่งในสามเหตุการณ์นี้จะทริกเกอร์ขึ้นอยู่กับสถานะแอพของคุณ

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