تلقّي الرسائل في تطبيقات C++

اختيار المنصة: iOS+ Android Web Flutter Unity 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);

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

عند بدء تشغيل تطبيقك لأول مرة، ينشئ FCM حزمة تطوير البرامج (SDK) رمز تسجيل لمثيل تطبيق العميل. إذا أردت استهداف أجهزة فردية أو إنشاء مجموعات أجهزة لـ 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.
}

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

لتلقّي الرسائل، يجب أن تنفّذ فئة المستمع الـ 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. عدم اتصال الجهاز بالإنترنت لفترة طويلة، وقد أرسل خادم التطبيق مؤخرًا (خلال آخر 4 أسابيع) رسالة إلى التطبيق على هذا الجهاز

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