Pubnub推送通知不适用于跨平台移动应用程序

时间:2015-10-19 05:10:24

标签: android cordova google-cloud-messaging phonegap-plugins pubnub

我们正在开发一个基于cordova的Android应用程序,它具有聊天功能。 我们正在从服务器发送测试聊天消息,当应用程序处于前台时,我们收到了消息。

我们希望在应用处于后台时收到有关聊天消息的通知。 但是,我们没有收到任何有关聊天消息的推送通知。

我们遵循的步骤如下所述。请告诉我们我们所犯的错误。

我们已提及this link,以便在应用处于后台时在设备上收到通知。

我们使用cordova PushPlugin注册设备以进行推送通知。并使用以下代码注册设备

 pubnub.mobile_gw_provision ({
     device_id: 'A655FBA9931AB',
     op: 'add',
     gw_type: 'gcm', // or 'apns'
     channel: 'my_chat',
     callback: mySuccessCallback,
     error: myErrorCallback,
 });

如果我们以编程方式发送使用GCM设备ID以使用GCM API从我们的服务器发送推送通知,我们会收到推送通知。

当应用程序在前台时,我们会在pushPlugin的onNotificationGCM方法中收到来自pubnub的通知提醒。

我们还在管理控制台中配置了GCM服务器API密钥并启用了pubnub推送通知。

我使用以下Python代码发布聊天:

_pubnub = Pubnub(publish_key='our-publish-key',
subscribe_key='our-sub-key')

channel_name = 'here-is-channel-string'
data=dict(
    pn_gcm=dict(data=dict(
        title_for_mobile='PN',
        summary_for_mobile=['Hi, test']
        )
    ),
    text='what is your dob?',
    sender=dict(name='Jon Snow', id='yyyyyyyy'),
    meta=dict(job=dict(id='zzzzzzzz'))
)

_pubnub.publish(channel_name, data)

在申请时获取传入聊天消息的推送通知 在后台是我的应用程序的关键功能。

请让我知道我做错了什么?

1 个答案:

答案 0 :(得分:5)

我还在Pubnub的支持下提出了有关此问题的支持请求。在Pubnub的一些人回复之后,我们得以解决它。

我们被this documentation误导了,我们正在使用

"pn_gcm": {
  "data": {
      "title_for_mobile": "Test",
      "summary_for_mobile": [ "Hi" ]
   }
}

相反,我们应该使用。

{
  "message": "This is some text",
  "pn_gcm": { 
     "data": {
         "title": "Demo wpush", 
         "message":"This is a pushnotification"
     }
   },
   "pn_debug": "true"
} 

因为Cordova PushPlugin需要来自message的{​​{1}}密钥。

GCM