【问题标题】:Parse.com Send Push Notification With DataParse.com 发送带有数据的推送通知
【发布时间】:2015-01-09 21:26:07
【问题描述】:

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

【问题讨论】:

    标签: android parse-platform push-notification


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-15
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      相关资源
      最近更新 更多