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, no Xcode, navegue até Arquivo > Novo > Destino e selecione Extensão de Serviço de Notificação.
.png?sv=2026-02-06&spr=https&st=2026-10-03T10%3A00%3A45Z&se=2026-10-03T10%3A13%3A45Z&sr=c&sp=r&sig=ERTip%2BieEIQCoJSruCxr9uz255T2QFWESyUu2xa5bts%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 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.
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.
.png?sv=2026-02-06&spr=https&st=2026-10-03T10%3A00%3A45Z&se=2026-10-03T10%3A13%3A45Z&sr=c&sp=r&sig=ERTip%2BieEIQCoJSruCxr9uz255T2QFWESyUu2xa5bts%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 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 móveis para mais detalhes.
Se quiser adicionar uma imagem via API, pode usar o push_picture parâmetro nos métodos Campanha, 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:
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.
.png?sv=2026-02-06&spr=https&st=2026-10-03T10%3A00%3A45Z&se=2026-10-03T10%3A13%3A45Z&sr=c&sp=r&sig=ERTip%2BieEIQCoJSruCxr9uz255T2QFWESyUu2xa5bts%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:
def shared_pods
pod 'Xtremepush-iOS-SDK'
end
target 'MainTarget' do
shared_pods
pod 'Alamofire'
...
end
target 'ExtensionTarget' do
shared_pods
endOu, 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:
.png?sv=2026-02-06&spr=https&st=2026-10-03T10%3A00%3A45Z&se=2026-10-03T10%3A13%3A45Z&sr=c&sp=r&sig=ERTip%2BieEIQCoJSruCxr9uz255T2QFWESyUu2xa5bts%3D)
Framework de alvo de extensão
Por fim, você deve adicionar o código do serviço de notificação:
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)
}
}#import <XPush/XPush.h>
@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