Links profundos

Prev Next

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 .

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.

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.

@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.