لتلقّي رسائل بسيطة للتنزيل، على كل تطبيق عميل تنفيذ
الطرق على
firebase::messaging::Listener
API.
بدء 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"
. قد يتم حذف الرسائل لأحد السببين التاليين:
تم تخزين عدد كبير جدًا من الرسائل على خادم FCM.
يمكن أن يحدث ذلك عندما ترسل خوادم التطبيق مجموعة من الرسائل التي لا يمكن تصغيرها إلى خوادم FCM عندما يكون الجهاز غير متصل بالإنترنت.
لم يتم ربط الجهاز بالإنترنت منذ فترة طويلة، وقد أرسل خادم التطبيق مؤخرًا (خلال آخر 4 أسابيع) رسالة إلى التطبيق على هذا الجهاز.
ننصح بإجراء التطبيق لمزامنة كاملة مع ملف برمجي التطبيق بعد تلقّي هذا الطلب.