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);