我们正在开发一个基于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)
在申请时获取传入聊天消息的推送通知 在后台是我的应用程序的关键功能。
请让我知道我做错了什么?
答案 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