با FCM، میتوانید دو نوع پیام به برنامههای کارخواه خود ارسال کنید:
- پیامهای اعلان، مشابه «پیامهای نمایش»، بهطور خودکار توسط FCM کیت توسعه نرمافزار مدیریت میشوند.
- پیامهای دادهای که توسط برنامه کارخواه مدیریت میشوند.
پیامهای اعلان حاوی مجموعهای از پیشتعریفشده از کلیدهای قابلمشاهده کاربر هستند و میتوانند حاوی بار داده اختیاری باشند. پیامهای داده، درمقابل، فقط حاوی جفتهای مقدار-کلید سفارشی تعریفشده توسط کاربر شما هستند. حداکثر بار مفید برای هر دو نوع پیام ۴۰۹۶ بایت است، بهجز هنگام ارسال پیام از کنسول 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"
}
}
}