Deeplinks são um tipo de link que envia os usuários diretamente para uma seção específica de um aplicativo ao abrir uma notificação.
Isso pode ser alcançado de 3 maneiras, usando:
Links profundos padrão
Um esquema de URL
Cargas úteis personalizadas de mensagens
Links profundos padrão
O Xtremepush tem um callback para strings de deeplink enviadas pela plataforma que incluem a ação Go to Deeplink .
.png?sv=2026-02-06&spr=https&st=2026-10-03T11%3A20%3A22Z&se=2026-10-03T11%3A32%3A22Z&sr=c&sp=r&sig=MRBRwWnHmoyFEjrxJnE%2BN8yD%2B%2B%2BQ1e1KmXsCDJ6k%2B10%3D)
iOS
Aqui está como você registra o handler no didFinishLaunchingWithOptions método no AppDelegate:
XPush.registerDeeplinkHandler({(_ x: String) -> Void in
})[XPush registerDeeplinkHandler:^(NSString *x) {
NSLog(@"[AppDelegate] - DeeplinkHandler: %@", x);
}];Abaixo está um exemplo simples de como isso pode ser usado
XPush.registerDeeplinkHandler({(_ x: String) -> Void in
switch x{
case "checkout":
self.goToCheckout()
case "offers":
self.goToOffers()
default:
print("unrecognised deeplink")
}
})[XPush registerDeeplinkHandler:^(NSString *x) {
if ([x isEqualToString:@"checkout"])
{
[self goToCheckout];
}
else if([x isEqualToString:@"offers"])
{
[self goToOffers];
}
}];Android
Primeiro, você deve implementar a DeeplinkListener interface na sua Application.java turma.
public class YOUR_APPLICATION_CLASS extends Application implements DeeplinkListener {Então você deve implementar o callback.
@Override
public void deeplinkReceived(String link, WeakReference uiReference) {
}Abaixo está um exemplo simples de como isso pode ser usado:
@Override
public void deeplinkReceived(String link, WeakReference uiReference) {
switch (link){
case "checkout":
goToCheckout();
break;
case "offers":
goToOffers();
break;
}
}Não se esqueça de adicionar o DeeplinkListener objeto que você criou a:PushConnector.builder
new PushConnector.Builder(XPUSH_APP_KEY, GOOGLE_PROJECT_NUMBER)
...
.setDeeplinkListener(this)
.create(this);Esquema de URL
Se você estiver usando links HTTPS ou um esquema de URL personalizado no seu app, pode usar a ação Abrir URL na plataforma.
.png?sv=2026-02-06&spr=https&st=2026-10-03T11%3A20%3A22Z&se=2026-10-03T11%3A32%3A22Z&sr=c&sp=r&sig=MRBRwWnHmoyFEjrxJnE%2BN8yD%2B%2B%2BQ1e1KmXsCDJ6k%2B10%3D)
Para iOS, mais informações sobre como implementar links profundos baseados em URL podem ser encontradas aqui.
Para Android, mais informações sobre como implementar links profundos baseados em URL podem ser encontradas aqui.
Cargas úteis personalizadas
Payloads personalizados também podem ser usados para navegar um usuário até páginas específicas do seu app.
.png?sv=2026-02-06&spr=https&st=2026-10-03T11%3A20%3A22Z&se=2026-10-03T11%3A32%3A22Z&sr=c&sp=r&sig=MRBRwWnHmoyFEjrxJnE%2BN8yD%2B%2B%2BQ1e1KmXsCDJ6k%2B10%3D)
@Override
public void messageResponseReceived(final Message messagePayload,
HashMap<String, String> responsePayload,
final WeakReference uiReference) {
if (responsePayload.get("type").equals("click")) {
if (messagePayload.data.containsKey("article")) {
openArticle(messagePayload.data.get("article"));
}
}
}XPush.registerMessageResponseHandler({(_ response: XPMessageResponse) -> Void in
if response.action.type == XPActionType_Click {
if (x.message.data?["article"] != nil) {
self.openArticle(x.message.data!["article"] as! String);
}
}
})[XPush registerMessageResponseHandlerWithCompletion:^(XPMessageResponse * _Nonnull
switch (response.action.type) {
case XPActionType_Click:
if (response.message.data[@"article"]){
[self openArticle: response.message.data[@"articleId"]];
}
break;
}
completionHandler();
}];Tratamento personalizado de mensagens
Informações sobre como implementar os MessageResponseHandlers podem ser encontradas aqui.