با FCM، میتوانید دو نوع پیام به برنامههای کارخواه خود ارسال کنید:
- پیامهای اعلان، مشابه «پیامهای نمایشی»، بهطور خودکار توسط
FCM SDK مدیریت میشوند. (در Android با
AndroidConfigV2، ازRemoteNotificationبرای همه پیامهایی که اعلان قابلمشاهده برای کاربر نمایش میدهند استفاده کنید تا بدون تأخیر عمدی تحویل داده شوند؛ اعلانها بهطور خودکار نمایش داده میشوند، چه برنامه در پیشزمینه باشد چه در پسزمینه، مگر اینکه صریحاً در کد کارخواه بیصدا شده باشند.) - پیامهای دادهای که توسط برنامه کارخواه مدیریت میشوند.
پیامهای اعلان حاوی مجموعهای از کلیدهای ازپیش تعریفشده قابلمشاهده برای کاربر هستند و میتوانند حاوی بار داده اختیاری باشند. درمقابل، پیامهای داده فقط حاوی جفتهای کلید-مقدار سفارشی تعریفشده توسط کاربر هستند. حداکثر بار مفید برای هر دو نوع پیام ۴۰۹۶ بایت است، بهجز هنگام ارسال پیام از کنسول Firebase که حد ۱۰۰۰ نویسه را اعمال میکند.
| استفاده از سناریو | نحوه ارسال | |
|---|---|---|
| پیام اعلان | FCM کیت توسعه نرمافزار پیام را ازطرف برنامه کارخواه وقتی در پسزمینه اجرا میشود در دستگاههای کاربر نهایی نمایش میدهد. درغیراینصورت، اگر برنامه هنگام دریافت اعلان در پیشزمینه درحال اجرا باشد، کد برنامه رفتار را تعیین میکند. |
|
| پیام داده | برنامه کارخواه مسئول پردازش پیامهای داده است. پیامهای داده فقط جفتهای کلید-مقدار سفارشی دارند و نام کلید رزروشده ندارند (به زیر مراجعه کنید). | در محیطی مطمئن مثل
Cloud Functions
یا سرور برنامهتان، از
Firebase Admin SDK یا
HTTP v1 API استفاده کنید.
در درخواست ارسال، کلید data
را تنظیم کنید.
|
وقتی میخواهید کیت توسعه نرمافزار FCM نمایش اعلان را بهطور خودکار در زمانی که برنامهتان در پسزمینه اجرا میشود مدیریت کند، میتوانید از پیامهای اعلان استفاده کنید. FCM میتواند پیام اعلان را با بار داده اختیاری ارسال کند. در چنین مواردی، FCM محموله اعلان را نمایش میدهد و برنامه کارخواه محموله داده را مدیریت میکند.
وقتی میخواهید پیامها را با کد برنامه کارخواه خودتان پردازش کنید، میتوانید از پیامهای داده استفاده کنید.
پیامهای اعلان
میتوانید پیامهای اعلان را بااستفاده از کنسول Firebase، Firebase Admin SDK، یا FCM HTTP v1 API ارسال کنید. کنسول Firebase آزمایش A/B مبتنی بر تجزیهوتحلیل را ارائه میدهد تا به شما کمک کند پیامهای اعلان خود را اصلاح و بهبود دهید.
برای ارسال پیامهای اعلان بااستفاده از Firebase Admin SDK یا FCM
HTTP v1 API، کلید notification را با مجموعه ازپیشتعریفشده گزینههای کلید-مقدار
پیام اعلان تنظیم کنید. میتوانید از مثال زیر برای قالببندی
پیام اعلان در برنامه پیامرسانی فوری استفاده کنید
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
وقتی برنامه در پسزمینه باشد، پیامهای اعلان به سینی اعلان ارسال میشود. برای برنامههای پیشزمینه، پیامها توسط تابع بازخوانی مدیریت میشوند.
برای مشاهده فهرست کامل کلیدهای ازپیشتعریفشده موجود برای ساختن پیامهای اعلان، میتوانید به سند مرجع شیء اعلان FCM HTTP v1 API مراجعه کنید.
پیامهای دادهای
اینکه چگونه میخواهید از بار داده FCM data برای پیادهسازی طرح رمزگذاری انتخابیتان استفاده کنید به شما بستگی دارد. مطمئن شوید که از هیچ کلمه رزروشدهای در
جفتهای کلید-مقدار سفارشیتان استفاده نکنید. کلمات رزروشده شامل from، message_type، یا
هر کلمهای است که با google.، gcm.، یا gcm.notification. شروع شود.
مثال زیر استفاده از فیلد داده سطح بالا یا مشترک را نشان میدهد که توسط کارخواهان در همه پلاتفرمهایی که پیام را دریافت میکنند تفسیر میشود. در هر پلاتفرم، برنامه مشتری بار داده را در تابع بازخوانی دریافت میکند
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
پیامهای اعلان با بار داده اختیاری
میتوانید پیامهای اعلان حاوی محموله اختیاری از جفتهای کلید-مقدار سفارشی را بهصورت برنامهنویسیشده یا بااستفاده از کنسول Firebase ارسال کنید. در سازنده اعلانها، از فیلدهای دادههای سفارشی در گزینههای پیشرفته استفاده کنید.
رفتار برنامه هنگام دریافت پیامهایی که شامل هم اعلان و هم بار داده است به این بستگی دارد که برنامه در پسزمینه است یا پیشزمینه—اساساً، اینکه در زمان دریافت فعال است یا نه.
- وقتی در پسزمینه باشد، برنامهها بار داده اعلان را در بخش اعلانها دریافت میکنند و فقط وقتی کاربر روی اعلان تکضرب میزند، بار داده را مدیریت میکنند.
- وقتی در پیشنما باشد، برنامه شما شیء پیامی را دریافت میکند که هر دو بار داده در آن دردسترس است.
در اینجا پیامی با قالب JSON حاوی هر دو کلید
notification و کلید data آورده شده است:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}