--- title: "Links profundos" slug: "mobile-deeplinks" updated: 2026-06-12T10:30:57Z published: 2026-06-12T10:30:57Z canonical: "docs.xtremepush.com/mobile-deeplinks" --- > ## 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. # Links profundos 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** . ![](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/d41c286-Screen_Shot_2017-09-26_at_14.57.42(1).png?sv=2026-02-06&spr=https&st=2026-11-04T08%3A57%3A11Z&se=2026-11-04T09%3A57%3A11Z&sr=c&sp=r&sig=GDB57m%2BkIY%2FVT6Rg%2Bf2mdTcUE5yRRFbgTjs8MNFR1%2B4%3D) ### iOS Aqui está como você registra o handler no `didFinishLaunchingWithOptions` método no AppDelegate: **Swift** ```swift XPush.registerDeeplinkHandler({(_ x: String) -> Void in        }) ``` **Objective-C** ```objectivec [XPush registerDeeplinkHandler:^(NSString *x) {        NSLog(@"[AppDelegate] - DeeplinkHandler: %@", x);    }]; ``` Abaixo está um exemplo simples de como isso pode ser usado **Swift** ```swift XPush.registerDeeplinkHandler({(_ x: String) -> Void in        switch x{            case "checkout":                self.goToCheckout()            case "offers":                self.goToOffers()            default:                print("unrecognised deeplink")        }    }) ``` **Objective-C** ```objectivec [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. ```java public class YOUR_APPLICATION_CLASS extends Application implements DeeplinkListener { ``` Então você deve implementar o callback. ```java @Override    public void deeplinkReceived(String link, WeakReference uiReference) {    } ``` Abaixo está um exemplo simples de como isso pode ser usado: ```java @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` ```java 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. ![](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/e07909d-Screen_Shot_2017-09-26_at_15.46.32(1).png?sv=2026-02-06&spr=https&st=2026-11-04T08%3A57%3A11Z&se=2026-11-04T09%3A57%3A11Z&sr=c&sp=r&sig=GDB57m%2BkIY%2FVT6Rg%2Bf2mdTcUE5yRRFbgTjs8MNFR1%2B4%3D) Para iOS, mais informações sobre como implementar links profundos baseados em URL podem ser [encontradas aqui](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content). Para Android, mais informações sobre como implementar links profundos baseados em URL podem ser [encontradas aqui](https://developer.android.com/training/app-links/deep-linking). ## Cargas úteis personalizadas Payloads personalizados também podem ser usados para navegar um usuário até páginas específicas do seu app. ![](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/1ef98df-Screen_Shot_2017-09-26_at_15.53.14(1).png?sv=2026-02-06&spr=https&st=2026-11-04T08%3A57%3A11Z&se=2026-11-04T09%3A57%3A11Z&sr=c&sp=r&sig=GDB57m%2BkIY%2FVT6Rg%2Bf2mdTcUE5yRRFbgTjs8MNFR1%2B4%3D) **Java** ```java @Override    public void messageResponseReceived(final Message messagePayload,                                        HashMap responsePayload,                                        final WeakReference uiReference) {        if (responsePayload.get("type").equals("click")) {            if (messagePayload.data.containsKey("article")) {                openArticle(messagePayload.data.get("article"));            }        }    } ``` **Swift** ```swift 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);            }        }    }) ``` **Objective-C** ```objectivec [XPush registerMessageResponseHandlerWithCompletion:^(XPMessageResponse * _Nonnull    switch (response.action.type) {        case XPActionType_Click:            if (response.message.data[@"article"]){                [self openArticle: response.message.data[@"articleId"]];            }            break;    }     completionHandler(); }]; ``` > [!NOTE] > Tratamento personalizado de mensagens > > Informações sobre como implementar os MessageResponseHandlers podem ser encontradas [aqui](/documentation/docs/pt-br/mobile-message-custom-handling).