Parse.com使用数据发送推送通知

时间:2015-01-09 21:26:08

标签: android parse-platform push-notification

我的应用使用多个推送通知。我希望添加某种Intent数据或任何盒装数据,这样当我在ParsePushBroadcastReceiver收到推送通知时,我能够检测到它是什么类型的推送通知,然后向用户显示相应的屏幕。例如,如果通知告诉用户朋友正在尝试添加您,则会将用户带到ContractRequest页面。

这就是我的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 个答案:

答案 0 :(得分:1)

请点击此处Parse's PUSH Developer Guide

特别值得注意的是:

  

也可以在此词典中指定您自己的数据。正如我们在“接收通知”部分中看到的那样,当用户收到通知时,您可以使用推送时发送的数据进行自定义处理。

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标记/对象​​/节点,其中包含在PUSH的推送端添加的JSONObject。