Я реализую push-уведомления с изображением в своем приложении iOS с помощью Firebase Cloud Messaging (FCM). Я создал собственное расширение NotificationServiceExtension для обработки загрузки и прикрепления изображений. Однако изображение не отображается в уведомлении.
Вот код, который я использую:
NotificationService.swift::
Я реализую push-уведомления с изображением в своем приложении iOS с помощью Firebase Cloud Messaging (FCM). Я создал собственное расширение NotificationServiceExtension для обработки загрузки и прикрепления изображений. Однако изображение не отображается в уведомлении. Вот код, который я использую: NotificationService.swift:: [code]import UIKit import UserNotifications import FirebaseMessaging
class NotificationService: UNNotificationServiceExtension { private var contentHandler: ((UNNotificationContent) -> Void)? private var bestAttemptContent: UNMutableNotificationContent? override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { self.contentHandler = contentHandler bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)defer { contentHandler(bestAttemptContent ?? request.content) } guard let attachment = request.attachment else { return } bestAttemptContent?.attachments = [attachment] } override func serviceExtensionTimeWillExpire() { if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent { contentHandler(bestAttemptContent) } } }
let imageFileIdentifier = UUID().uuidString + ".jpg" let fileURL = temporaryFolderURL.appendingPathComponent(imageFileIdentifier) try data.write(to: fileURL) try self.init(identifier: imageFileIdentifier, url: fileURL, options: options) } } [/code] Полезная нагрузка FCM Вот полезная нагрузка, которую я отправляю с сервера: [code]message = messaging.Message( data=convert_to_firebase_compatible(data), token=registration_id, android=messaging.AndroidConfig( priority='high', ttl=ttl ), notification=messaging.Notification( title=data.get('title', 'ABC'), body=data.get('message', ''), image=data.get('image_url', '') ), apns=messaging.APNSConfig( headers={ 'apns-priority': '10', }, payload=messaging.APNSPayload( aps=messaging.Aps( sound='default', mutable_content='1' ), ), fcm_options=messaging.APNSFCMOptions( image=data.get('image_url', '') ) ), ) [/code] Проблема: [list] [*]Уведомления приходят на iOS, но изображение не отображается. [*]Я подтвердил, что URL-адрес изображения в полезных данных userInfo действителен и доступен. [/list] Выполненные действия: [list] [*]Добавлено расширение NotificationServiceExtension для обработки изображений. Attachment. [*]Проверил, что image_url в полезных данных правильный и доступен. [*]Подтвердил, что для mutable_content в полезных данных установлено значение «1». [*]Подтверждено, что для параметра mutable_content установлено значение «1». [*] li> [/list] Вопросы: [list] Пропустили ли я какие-либо шаги по настройке NotificationServiceExtension для обработки изображений ? [*]Является ли FCM полезная нагрузка правильно структурирована для отправки изображений в уведомлениях iOS? [*]Нужно ли мне настроить что-либо еще для APN или FCM для поддержки изображений в уведомлениях? [/list]
Я реализую push-уведомления с изображением в своем приложении iOS с помощью Firebase Cloud Messaging (FCM). Я создал собственное расширение NotificationServiceExtension для обработки загрузки и прикрепления изображений. Однако изображение не...
Я внедряю Push -уведомления с изображением в моем приложении для iOS с использованием обмена сообщениями Firebase Cloud (FCM). Я создал пользовательские уведомления ServiceExtension для обработки загрузки и вложения изображения. Тем не менее,...
У меня есть приложение, использующее Expo 50 + React Native, работающее на Android 33.
Я использую сервис Stream.io для инфраструктуры чата + обмен сообщениями Firebase Cloud для push-уведомлений.
Моя интеграция хорошо работает в iOS, но на Android...
Контекст
Согласно документации FCM по обработке сообщений Android, push-уведомления будут отображаться только в том случае, если приложение работает в фоновом режиме. Уведомление не может появиться на Системном трее, когда приложение находится на...
Контекст
Согласно документации FCM по обработке сообщений Android, push-уведомления будут отображаться только в том случае, если приложение работает в фоновом режиме. Уведомление не может появиться на Системном трее, когда приложение находится на...