编程语言
首页 > 编程语言> > android – Pubnub推送通知不适用于跨平台移动应用程序

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