--- title: "Notificações ricas de mídia no iOS" slug: "ios-push-rich-media" updated: 2026-06-12T10:30:57Z published: 2026-06-12T10:30:57Z canonical: "docs.xtremepush.com/ios-push-rich-media" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt > Use this file to discover all available pages before exploring further. # Notificações ricas de mídia no iOS Envie notificações push com imagens, GIFs e vídeos O iOS 10 introduziu a capacidade de enviar notificações push com imagens, GIFs e vídeos. Para habilitar essa funcionalidade, os clientes devem criar uma *Extensão de Serviço* que possibilita a modificação de uma carga útil push antes que ela seja exibida. ## Criando uma extensão de serviço Para criar uma [Extensão de Serviço de Notificação](https://developer.apple.com/reference/usernotifications/unnotificationserviceextension), no Xcode, navegue até **Arquivo > Novo > Destino** e selecione **Extensão de Serviço de Notificação**. ![1648](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/eef4e8f-ios10_se_at(1).png?sv=2026-02-06&spr=https&st=2026-11-04T07%3A55%3A01Z&se=2026-11-04T08%3A55%3A01Z&sr=c&sp=r&sig=H0bzR4JIZWOOVJ%2F57CXsyrmweAMM52BhLMUGZd9sqyk%3D) Extensão do Serviço de Notificação Xcode Certifique-se de que **o Embed In Application** esteja configurado para incorporar a extensão na sua aplicação. Certifique-se de definir o objetivo de implantação para *iOS 10* ou superior, dependendo das suas especificidades. Por padrão, o Xcode define o objetivo de implantação para o iOS mais recente, que falha silenciosamente em funcionar na versão inferior do sistema operacional. Por exemplo, se você definir o alvo de implantação da Extensão de Serviço como 11.0 e rodar o app em um dispositivo iOS 10.3 e em um dispositivo iOS 11.0, a Extensão de Serviço não funcionará no dispositivo 10.3, mas ao definir o alvo de implantação para 10.0, funcionará em ambos. ## Configuração da extensão de serviço *Uma Extensão de Serviço de Notificação* é um binário próprio que vem junto com seu app. Assim, ele deve ser configurado no [Portal de Desenvolvedores da Apple](https://developer.apple.com/) com seu próprio ID de App e Perfil de Provisão. Extensões geralmente são nomeadas com um sufixo no ID da aplicação principal (por exemplo, `com.xtremepush.test.testwatchnotificationservice`). Detalhes dos tipos e tamanhos de arquivos suportados para mídia rica podem ser encontrados na [documentação do Apple Developer](https://developer.apple.com/reference/usernotifications/unnotificationattachment). Por fim, certifique-se de que as notificações estejam ativadas para sua extensão de serviço. **Em Alvos > Capacidades** , selecione sua extensão de serviço e certifique-se de **que as Notificações Push** estejam ativadas. ![2040](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/72a95d0-bbda7f9130a0b5d95ead8d14bb7f4b62(1).png?sv=2026-02-06&spr=https&st=2026-11-04T07%3A55%3A01Z&se=2026-11-04T08%3A55%3A01Z&sr=c&sp=r&sig=H0bzR4JIZWOOVJ%2F57CXsyrmweAMM52BhLMUGZd9sqyk%3D) Notificações push de alternância de extensão Xcode ## Exibindo uma imagem Este é o caso de uso mais comum de mídia rica e possui um campo dedicado na [aba de conteúdo push do iOS](/documentation/docs/pt-br/campaign-ios) ao criar uma campanha no Xtremepush. O iOS suporta formatos JPG, GIF e PNG de até 2 MB. Revise nossas [diretrizes criativas de notificações push para dispositivos](/documentation/docs/pt-br/push-notifications-creative-guidelines) móveis para mais detalhes. Se quiser adicionar uma imagem via API, pode usar o `push_picture` parâmetro nos [métodos Campanha](/ref:api-campaign), por exemplo: Exemplo simples de um push iOS de transmissão com uma imagem hospedada no seu CMS ou em outro lugar sendo carregada e enviada via API abaixo: ```shell curl --request POST \  --url https://external-api.xtremepush.com/api/external/create/campaign \  --header 'content-type: application/json' \  --data '{    "apptoken": "YOURAPPTOKEN",    "text": "Just Testing My Service Extension",    "ios": {"active": 1},    "push_picture": "https://pathtoyourhostedimage.com/large/gold-coast-coffee30665.jpg",    "send_type": 0,    "broadcast": 1  }' ``` Para exibir a imagem no dispositivo móvel, ela deve ser tratada na extensão de serviço. ![1400](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/275a1dd-La-caffetteria(1).png?sv=2026-02-06&spr=https&st=2026-11-04T07%3A55%3A01Z&se=2026-11-04T08%3A55%3A01Z&sr=c&sp=r&sig=H0bzR4JIZWOOVJ%2F57CXsyrmweAMM52BhLMUGZd9sqyk%3D) Exemplo de notificação rica no iOS O SDK Xtremepush pode gerenciar a exibição da imagem, vinculando o SDK ao seu destino de extensão. Se você usar CocoaPods, pode fazer algo parecido com isso: ```ruby def shared_pods  pod 'Xtremepush-iOS-SDK' end target 'MainTarget' do  shared_pods    pod 'Alamofire'  ...   end target 'ExtensionTarget' do  shared_pods end ``` Ou, você pode adicionar o framework manualmente usando o drag and drop na pasta de extensões, ou adicionando a Extensão à *Associação de Alvos* do framework na janela direita, como mostrado abaixo: ![1142](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/f2cecf2-Screen_Shot_2018-07-26_at_15.09.19(1).png?sv=2026-02-06&spr=https&st=2026-11-04T07%3A55%3A01Z&se=2026-11-04T08%3A55%3A01Z&sr=c&sp=r&sig=H0bzR4JIZWOOVJ%2F57CXsyrmweAMM52BhLMUGZd9sqyk%3D) Framework de alvo de extensão Por fim, você deve adicionar o código do serviço de notificação: **Swift** ```swift import XPush class NotificationService: UNNotificationServiceExtension {    var token: String?    override func didReceive(_ request: UNNotificationRequest,                             withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {        self.token = XPush.didReceive(request, withContentHandler: contentHandler)    }    override func serviceExtensionTimeWillExpire() {        XPush.serviceExtensionTimeWillExpire(with: token)    } } ``` **Objective-C** ```objectivec #import @interface NotificationService () @property (nonatomic) NSString* token; @end @implementation NotificationService - (void)didReceiveNotificationRequest:(UNNotificationRequest *)request                   withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {    self.token = [XPush didReceiveNotificationRequest:request                                   withContentHandler:contentHandler]; } - (void)serviceExtensionTimeWillExpire {    [XPush serviceExtensionTimeWillExpireWith:self.token]; } @end ```