Cliques de botões de manuseio

Prev Next

Implementação necessária para notificações push interativas móveis

Com a opção de carregar categorias , você pode adicionar vários botões às suas mensagens. Depois, é necessário lidar com diferentes cliques de botões. Isso pode ser feito usando nosso manipulador de respostas de mensagens.

iOS

XPush.registerContinousMessageResponseHandler({(_ response: XPMessageResponse, _ callback: XPMessageCompletionBlock) -> Void in
        if response.action.type == XPActionType_Click {
            //like button which runs in background
            if(response.action.identifier == "like"){
                likeArticle(response.message.data["articleId"])
            } 
            //View button which runs in foreground
            else if(response.action.identifier == "view"){
                openArticle(response.message.data["articleId"])
            }
        }
        //if nothing to be done
        completionHandler()
 })
[XPush registerMessageResponseHandlerWithCompletion:^(XPMessageResponse * _Nonnull x, XPMessageCompletionBlock  _Nonnull completionHandler) {
    if (response.action.type == XPActionType_Click) {
        switch (response.action.identifier) {
            // Like button which runs in background
            case "like": 
                // Like article asynchronously and call completionHandler when finished
                [self likeArticle: response.message.data[@"articleId"] completionHandler: completionHandler];
                return;
            // View button which runs in foreground
            case "view":
                // Navigate to the article page
                [self openArticle: response.message.data[@"articleId"]];
                completionHandler();
                return;
        }
    }
    // If nothing to be done
    completionHandler();
}];

Android

Implemente o MessageResponseListener na sua Application.java classe

public class YOUR_APPLICATION_CLASS extends Application implements MessageResponseListener {
@Override
    public void messageResponseReceived(Message messagePayload,
                                        HashMap<String, String> responsePayload,
                                        WeakReference uiReference) {

        if(responsePayload.get("responseType").equals("click")){
            switch (responsePayload.get("action")){
                // Like button which runs in background
                case "like":
                    //like article asynchronously
                    likeArticle(messagePayload.data.get("articleId"));
                    break;
                // View button which runs in foreground
                case "view":
                    //navigate to article page
                    //note, uiReference and uiReference.get() need to checked to ensure
                    //   they are not null
                    goToArticle(uiReference, messagePayload.data.get("articleId"));
                    break;
            }
        }
    }

Depois, adicione a setMessageResponseListener opção à sua inicialização do PushConnector:

new PushConnector.Builder(XPUSH_APP_KEY, GOOGLE_PROJECT_NUMBER)
            .setMessageResponseListener(this)
            ...
            .create(this);