【问题标题】:pubnub - publish fallback to push notifications doesn't workpubnub - 发布回退到推送通知不起作用
【发布时间】:2016-02-25 12:39:04
【问题描述】:

我正在使用带有 pubnub 的 android。

我完成了订阅/发布教程并且它有效,我有一个有效的聊天(当应用程序打开时)。

阅读所有教程后,我了解到当应用程序处于后台或关闭时,publish 方法应该回退以向频道中subscribeenablePushNotificationsOnChannel 的每个人发送推送通知。

由于某种原因,它对我不起作用,我不确定它应该如何工作。

从教程中,应该有一段代码:

  1. 通过实时通道发送数据。
  2. 如果应用关闭/在后台发送推送通知。

来自网站:

/ Send Push Notification to all devices
// registered to `my_channel`

JSONObject jso = null;
try {
jso = new JSONObject("{
'aps' : {
'alert' : 'You got your emails.'," + "
'badge' : 9,
'sound' : 'bingbong.aiff'}," + "
'acme 1': 42
}");
pubnub.publish("my_channel", jso,
new Callback(){
@Override
public void successCallback(String arg0,
Object arg1) {
System.out.println(arg1);
}

还有:

Sending Notifications
Sending a notification requires creating a JSON object. It is then added to a PubNub GCM specific message (the message is formatted for you).

public void sendNotification() {
    PnGcmMessage gcmMessage = new PnGcmMessage();
    JSONObject jso = new JSONObject();
    try {
        jso.put("GCMSays", "hi");
    } catch (JSONException e) { }
    gcmMessage.setData(jso);

    PnMessage message = new PnMessage(
            pubnub,
            "your channel name",
            callback,
            gcmMessage);
    try {
        message.publish();
    } catch (PubnubException e) {
        e.printStackTrace();
    }
}

Note that we have to create the callback methods which will be fired when the message is published:

public static Callback callback = new Callback() {
    @Override
    public void successCallback(String channel, Object message) {
        Log.i(TAG, "Success on Channel " + CHANNEL + " : " + message);
    }
    @Override
    public void errorCallback(String channel, PubnubError error) {
        Log.i(TAG, "Error On Channel " + CHANNEL + " : " + error);
    }
};

因此,很明显,这是两段不同的代码,它们都没有涵盖两个选项(应用打开时的实时通道,应用关闭时的推送通知)。

我需要一段代码:

  1. 如果应用程序打开 - 通过渠道发送数据。
  2. 如果应用程序已关闭/在后台 - 发送推送通知。

【问题讨论】:

    标签: android push-notification google-cloud-messaging real-time pubnub


    【解决方案1】:

    PubNub 移动推送通知

    发布者不知道也不关心订阅者在设备上是处于活动状态(前台)还是处于非活动状态(后台或根本没有运行 - kill 状态)。发布者始终使用 GCM(可能还有 APNS)有效负载发布消息。

    • 活动应用程序将同时接收这两者,并将阻止通过操作系统的推送消息接收器侦听器显示推送通知。
    • 非活动应用程序将仅接收推送通知并显示该通知。当最终用户点击推送消息时,它将打开应用程序,您可以在其中获取错过的消息并在应用程序的 UI 中显示完整内容。

    请参阅我的文章 Sending APNS and GCM Messages to Subscribers and Mobile Push Notification Services in One API Call,了解 PubNub 推送通知的工作原理。

    从那里,您可能还有其他问题,但这应该可以让您对如何使用 PubNub 移动推送通知有个良好的开端。

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多