android – Pubnub推送通知不适用于跨平台移动应用程序
作者:互联网
我们正在开发一个基于cordova的Android应用程序,它具有聊天功能.
我们正在从服务器发送测试聊天消息,当应用程序处于前台时,我们收到了消息.
我们希望在应用处于后台时收到有关聊天消息的通知.
但是,我们没有收到任何关于聊天消息的推送通知.
我们遵循的步骤如下所述.请告诉我们我们所犯的错误.
当app在后台时,我们已提及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)
在应用程序时获取传入聊天消息的推送通知
在后台是我的应用程序的关键功能.
请让我知道我做错了什么?
解决方法:
在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期待来自GCM的消息密钥.
// GCMIntentService.java
@Override
protected void onMessage(Context context, Intent intent) {
//.... some code ...
if (extras.getString("message") != null && extras.getString("message").length() != 0) {
createNotification(context, extras);
}
//... some code ...
标签:pubnub,android,cordova,google-cloud-messaging,phonegap-plugins 来源: https://codeday.me/bug/20190829/1762587.html