Todos os produtos
Search
Central de documentação

Mobile Platform as a Service:Tratamento de cliques em notificações

Última atualização: Jun 28, 2026

Em aplicativos integrados a um canal de push de terceiros e executados em dispositivos desse fabricante, o servidor envia mensagens pelo canal de terceiros por padrão. Nos demais casos, as mensagens são enviadas pelo canal próprio.

  • Ao receber uma mensagem pelo canal próprio, o SDK de push gera automaticamente uma notificação. Quando o usuário clique em na notificação, uma página da web é aberta automaticamente.

    Importante

    O SDK de push utiliza IDs de notificação que começam em 10000. Certifique-se de que os outros IDs de notificação utilizados não entrem em conflito com esse intervalo.

  • Quando um canal de terceiros recebe uma mensagem, o sistema operacional móvel gera a notificação automaticamente. Nem o SDK de push nem os desenvolvedores têm controle sobre esse processo. O SDK de push só recebe a mensagem após o clique do usuário na notificação, momento em que uma página da web é aberta automaticamente.

Pré-requisitos

  • Os métodos da classe MPPushMsgServiceAdapter descritos neste tópico aplicam-se apenas à baseline 10.1.68.32 ou superior. Caso utilize uma versão anterior à 10.1.68.32, atualize sua baseline. Para mais informações, consulte o guia de atualização do mPaaS.

  • O método AliPushRcvService das versões anteriores ainda pode ser utilizado. Para acessar a documentação dessas versões, clique em aqui para baixe.

Redirecionar para uma página no aplicativo

Para redirecionar o usuário a uma página específica do aplicativo, insira um deep link personalizado, como mpaas://navigate, no endereço de redirecionamento da mensagem de push. Configure também uma Activity de roteamento no aplicativo para receber o deep link e encaminhá-lo às demais páginas.

Adicione o intent-filter correspondente à Activity de roteamento no arquivo AndroidManifest.xml. Exemplo:

<activity android:name=".push.LauncherActivity"
    android:launchMode="singleInstance">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="mpaas" />
    </intent-filter>
</activity>

Recupere a URI e a mensagem na Activity de roteamento:

Uri uri = intent.getData();
MPPushMsg msg = intent.getParcelableExtra("mp_push_msg");

Personalizar o tratamento de mensagens

Para processar mensagens, sobrescreva os métodos onMessageReceive e onChannelMessageClick da classe MPPushMsgServiceAdapter:

public class MyPushMsgService extends MPPushMsgServiceAdapter {

    /**
     * Callback for messages received from the self-built channel.
     *
     * @param msg The received message.
     * @return A boolean that indicates whether the message was processed.
     *         - true: The SDK does not process the message. You must handle the message, including sending a notification and handling the subsequent click.
     *         - false: The SDK automatically sends a notification and handles the click action.
     */
    @Override
    protected boolean onMessageReceive(MPPushMsg msg) {
        Log.d("Message received from self-built channel: " + msg.toString());
        // Process the message, for example, send a custom notification.
        return true;
    }

    /**
     * Callback for clicks on notifications from a third-party channel.
     *
     * @param msg The received message.
     * @return A boolean that indicates whether the click was processed.
     *         - true: The SDK does not handle the click. You must handle the redirect action.
     *         - false: The SDK automatically handles the redirect action.
     */
    @Override
    protected boolean onChannelMessageClick(MPPushMsg msg) {
        Log.d("Message from third-party channel was clicked: " + msg.toString());
        // Handle the logic after the click.
        return true;
    }

}

O objeto MPPushMsg encapsula todos os parâmetros da mensagem:

String id = msg.getId(); // Message ID
boolean isSilent = msg.isSilent(); // Indicates if it is a silent message

String title = msg.getTitle(); // Message title
String content = msg.getContent(); // Message content

String action = msg.getAction(); // Redirect type. 0: URL. 1: Custom DeepLink.
String url = msg.getUrl(); // Redirect address, which can be a URL or a DeepLink.

int pushStyle = msg.getPushStyle(); // Message type. 0: Normal message. 1: Large text message. 2: Rich media message.
String iconUrl = msg.getIconUrl(); // Small icon for a rich media message.
String imageUrl = msg.getImageUrl(); // Image for a rich media message.

String customId = msg.getCustomId(); // Custom message ID.
String params = msg.getParams(); // Extended parameters.

Após processar uma mensagem, reporte os dados de instrumentação correspondentes. Sem isso, a análise de uso de push no console não coletará os dados corretamente:

MPPush.reportPushOpen(msg); // Reports that the message was opened.
MPPush.reportPushIgnored(msg); // Reports that the message was ignored.

Para mensagens do canal próprio:

  • Não é necessário reportar mensagens silenciosas.

  • No caso de mensagens não silenciosas, reporte quando forem abertas ou ignoradas. Utilize os métodos setContentIntent e setDeleteIntent da classe Notification.Builder ou outros mecanismos válidos para detectar essas ações do usuário.

Não é necessário reportar mensagens provenientes de canais de terceiros.