API FCM HTTP v1 و Notifications Composer از ارسال پیوندهای تصویر در محموله یک اعلان نمایشگر برای دانلود تصویر به دستگاه پس از تحویل پشتیبانی میکنند. این قابلیت از تصاویر و ویدیوها برای برنامههای اپل پشتیبانی میکند (به اسناد اپل برای محدودیت اندازه فایل مراجعه کنید).
برای اینکه بتوانید تصاویر اعلان را در یک برنامه Apple دریافت و مدیریت کنید، باید یک برنامه افزودنی سرویس اعلان اضافه کنید. برنامه افزودنی سرویس اعلان به برنامه شما اجازه می دهد تا قبل از نمایش اعلان به کاربر نهایی، تصویر ارائه شده در محموله FCM را مدیریت کند.
برنامه افزودنی سرویس اعلان را تنظیم کنید
برای افزودن یک برنامه افزودنی سرویس، وظایف راهاندازی لازم را برای اصلاح و ارائه اعلانها در APNها انجام دهید و سپس API کمکی برنامه افزودنی FCM را در NotificationService.m
اضافه کنید. به طور خاص، به جای تکمیل تماس با self.contentHandler(self.bestAttemptContent);
، آن را با FIRMessaging extensionHelper
تکمیل کنید، همانطور که نشان داده شده است:
@interface NotificationService () <NSURLSessionDelegate>
@property(nonatomic) void (^contentHandler)(UNNotificationContent *contentToDeliver);
@property(nonatomic) UNMutableNotificationContent *bestAttemptContent;
@end
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
self.contentHandler = contentHandler;
self.bestAttemptContent = [request.content mutableCopy];
// Modify the notification content here as you wish
self.bestAttemptContent.title = [NSString stringWithFormat:@"%@ [modified]",
self.bestAttemptContent.title];
// Call FIRMessaging extension helper API.
[[FIRMessaging extensionHelper] populateNotificationContent:self.bestAttemptContent
withContentHandler:contentHandler];
}
...
درخواست ارسال را بسازید
در درخواست ارسال اعلان، گزینه های ApnsConfig زیر را تنظیم کنید:
-
fcm_options.image
حاوی URL تصویر. اپل برای شناسایی صحیح نوع منبع، باید URL تصویر دارای پسوند فایل معتبر باشد. -
headers({ "mutable-content": 1})
درخواست ارسال زیر یک عنوان اعلان مشترک را به همه پلتفرم ها ارسال می کند، اما یک تصویر نیز ارسال می کند. در اینجا مثالی از جلوه بصری روی دستگاه کاربر آورده شده است:
Node.js
const topicName = 'industry-tech';
const message = {
notification: {
title: 'Sparky says hello!'
},
android: {
notification: {
imageUrl: 'https://foo.bar.pizza-monster.png'
}
},
apns: {
payload: {
aps: {
'mutable-content': 1
}
},
fcm_options: {
image: 'https://foo.bar.pizza-monster.png'
}
},
webpush: {
headers: {
image: 'https://foo.bar.pizza-monster.png'
}
},
topic: topicName,
};
getMessaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
استراحت
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"topic":"industry-tech",
"notification":{
"title":"Sparky says hello!",
},
"android":{
"notification":{
"image":"https://foo.bar/pizza-monster.png"
}
},
"apns":{
"payload":{
"aps":{
"mutable-content":1
}
},
"fcm_options": {
"image":"https://foo.bar/pizza-monster.png"
}
},
"webpush":{
"headers":{
"image":"https://foo.bar/pizza-monster.png"
}
}
}
}
برای کسب اطلاعات بیشتر، صفحه مرجع HTTP v1 را برای جزئیات بیشتر در مورد کلیدهای موجود در بلوک های خاص پلت فرم در متن پیام مشاهده کنید.
با تنظیم mutable-content
همانطور که نشان داده شده است، این درخواست ارسال به برنامه افزودنی سرویس در مشتری دریافت کننده امکان می دهد تا تصویر تحویل داده شده در محموله را مدیریت کند.