2015-01-09 3 views
0

Мое приложение использует несколько push-уведомлений. Я хочу добавить какие-то данные Intent или любые данные в коробке, так что, когда я получаю push-уведомление в своем ParsePushBroadcastReceiver, я могу определить, какой тип push-уведомления он есть, а затем показать пользователю соответствующий экран. Например, если уведомление сообщает пользователю, что друг пытается добавить вас, он берет пользователя на страницу ContractRequest.Parse.com Отправить Push-уведомление с данными

Это то, что мой Receiver в настоящее время выглядит следующим образом:

public class ParsePushReceiver extends ParsePushBroadcastReceiver { 
    @Override 
    public void onPushOpen(final Context context, final Intent intent) { 
     Log.i("Push", "Notification Clicked"); 
     Intent activityIntent = new Intent(context, GameDetailsActivity.class); 
     activityIntent.putExtras(intent.getExtras()); 
     activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(activityIntent); 
    } 
} 

И это, как я обычно отправить уведомление толчок:

ParseQuery query = ParseInstallation.getQuery(); 
query.whereEqualTo(ParseUserHelper.USERNAME_VAR, contact.getUsername()); 
ParsePush.sendMessageInBackground(String.format("..."); 
.... 

Любые идеи, как я могу обернуть данные в уведомлении, так что когда я перехватил его в своем приемнике, я смогу сделать оператор switch, который должен проверить, какой тип уведомления он есть, а затем показать пользователю правильное действие.

ответ

1

Посмотрите здесь, Parse's PUSH Developer Guide.

В частности следует отметить следующее:

Также можно указать свои данные в этом словаре. Как мы увидим в разделе «Получение уведомлений», вы можете использовать данные, отправленные с помощью push, для выполнения пользовательской обработки, когда пользователь получает и взаимодействует с уведомлением.

JSONObject data = new JSONObject("{\"name\": \"Vaughn\", 
           \"newsItem\": \"Man bites dog\"}")); 
ParsePush push = new ParsePush(); 
push.setQuery(injuryReportsQuery); 
push.setChannel("Indians"); 
push.setData(data); 
push.sendPushInBackground(); 

Несмотря на это предложение:

Как мы увидим в разделе Уведомления Принимающей, вы можете использовать данные, отправленные с толчке, чтобы сделать собственную обработку, когда пользователь получает и взаимодействует с уведомлением.

Я не вижу их давать какую-либо подробность о том, как получить доступ к данным, когда уведомление PUSH получено, но вы спросили о упаковочной данных, не разворачивая его. Я бы предположил, что входящее уведомление PUSH имеет тег/объект/узел data, который содержит JSONObject, добавленный на push-стороне PUSH.

Смежные вопросы