تلقي الرسائل على تطبيق عميل C++

لتلقّي رسائل بسيطة من الخادم إلى التطبيق، يجب أن ينفّذ كل تطبيق عميل الطرق في واجهة برمجة التطبيقات firebase::messaging::Listener.

إعداد FCM

قبل أن تتمكّن من استخدام FCM للوصول إلى رمز التسجيل أو تلقّي الرسائل، يجب تهيئته.

لبدء FCM، استدعِ الدالة ::firebase::messaging::Initialize وقدِّم لها كلاً من عنصر ::firebase::App وتنفيذًا لفئة ::firebase::messaging::Listener.

MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);

الوصول إلى رمز التسجيل

عند بدء تشغيل تطبيقك لأول مرة، تنشئ حزمة تطوير البرامج (SDK) FCM رمز تسجيل لنسخة تطبيق العميل. إذا كنت تريد استهداف أجهزة فردية أو إنشاء مجموعات أجهزة لاستخدام FCM، عليك الحصول على رمز الدخول هذا.

يمكنك الوصول إلى قيمة الرمز المميّز من خلال الدالة الافتراضية ::firebase::messaging::Listener::OnTokenReceived.

void OnTokenReceived(const char* token) {
  LogMessage("The registration token is `%s`", token);

  // TODO: If necessary send token to application server.
}

تلقّي الرسائل والتعامل معها

لتلقّي الرسائل، يجب أن تنفّذ فئة Listener الدالة الافتراضية OnMessage.

تجاهل OnMessage

من خلال إلغاء طريقة ::firebase::messaging::Listener::OnMessage، يمكنك تنفيذ إجراءات استنادًا إلى الرسالة المستلَمة والحصول على بيانات الرسالة:

void OnMessage(const ::firebase::messaging::Message& message) {
  LogMessage(TAG, "From: %s", message.from.c_str());
  LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}

يمكن أن تمثّل الرسائل أنواعًا مختلفة من البيانات الواردة. في معظم الحالات، يتم إرسال الرسائل إلى التطبيق بعد أن يبدأها المطوّر. يتم أيضًا إرسال رسائل إلى تطبيقك لتمثيل أحداث الرسائل المرسَلة وأحداث أخطاء إرسال الرسائل وأحداث الرسائل المحذوفة. ويمكن التمييز بين هذه الأحداث الخاصة من خلال التحقّق من الحقل Message::message_type.

تم حذف الرسائل

يتم إرسال هذا الرمز إلى تطبيقك عندما يحذف خادم FCM الرسائل المعلّقة. سيصبح Message::message_type هو "deleted_messages". قد يتم حذف الرسائل للأسباب التالية:

  1. تم تخزين عدد كبير جدًا من الرسائل على خادم FCM.

    يمكن أن يحدث ذلك عندما ترسل خوادم أحد التطبيقات مجموعة من الرسائل غير القابلة للتصغير إلى خوادم FCM أثناء عدم اتصال الجهاز بالإنترنت.

  2. لم يتصل الجهاز بالإنترنت لفترة طويلة، وأرسل خادم التطبيق رسالة إلى التطبيق على هذا الجهاز مؤخرًا (خلال الأسابيع الأربعة الماضية).

    ويُنصح التطبيق بإجراء مزامنة كاملة مع خادم التطبيق بعد تلقّي هذا الطلب.