Mengirim gambar dalam payload notifikasi

FCM HTTP v1 API dan Notifications composer mendukung pengiriman link gambar dalam payload notifikasi tampilan, untuk mendownload gambar ke perangkat setelah pengiriman. Fungsi ini mendukung gambar dan video untuk aplikasi di iOS 10 dan versi yang lebih baru (lihat dokumentasi iOS untuk batas ukuran file).

Agar dapat menerima dan menangani gambar notifikasi di aplikasi iOS, Anda harus menambahkan Ekstensi Layanan Notifikasi. Ekstensi layanan notifikasi memungkinkan aplikasi Anda menangani gambar yang dikirim dalam payload FCM sebelum menampilkan pemberitahuan kepada pengguna akhir.

Menyiapkan ekstensi layanan notifikasi

Untuk menambahkan ekstensi layanan, lakukan tugas penyiapan yang diperlukan untuk mengubah dan menayangkan notifikasi di APN, lalu tambahkan API pembantu ekstensi FCM di NotificationService.m. Secara khusus, alih-alih menyelesaikan callback dengan self.contentHandler(self.bestAttemptContent);, selesaikan dengan FIRMessaging extensionHelper seperti yang ditunjukkan:

@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];

}
...

Membuat permintaan kirim

Dalam permintaan kirim notifikasi Anda, tetapkan opsi ApnsConfig berikut:

  • fcm_options.image yang berisi URL gambar
  • headers({ "mutable-content": 1})

Contoh:

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":{
    "token" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification" : {
      "body" : "This is an FCM notification that displays an image.!",
      "title" : "FCM Notification",
     },
     "apns": {
         "payload": {
             "aps": {
                 "mutable-content": 1
             }
         },
         "fcm_options": {
             "image": "url-to-image"
         }
       }
   }
}

Dengan mutable-content ditetapkan seperti yang ditunjukkan, permintaan kirim ini memungkinkan ekstensi layanan pada klien penerima untuk menangani gambar yang dikirim dalam payload.