我的应用使用多个推送通知。我希望添加某种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
语句,该语句将检查它是什么类型的通知然后显示用户正确的活动。
答案 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。