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

2024-03-04

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

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

我们遵循的步骤如下所述。请让我们知道我们所犯的错误。

我们已经提到了这个链接 http://www.pubnub.com/docs/web-javascript/mobile-gateway#_javascript_mobile_push_gateway_for_realtime_apps_pubnub当应用程序处于后台时在设备上收到通知。

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

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

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

当应用程序位于前台时,我们在 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 的一些友好回复后,我们得以解决这个问题。

我们被误导了本文档 https://www.pubnub.com/docs/phonegap-javascript/mobile-gateway#Formatting_your_messages_for_receipt_on_associated_devices_GCM,我们正在使用

"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钥匙来自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 ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pubnub 推送通知不适用于跨平台移动应用程序 的相关文章

随机推荐

  • 无法包含用于客户端幻灯片验证的 js 文件

    我安装了gem client side validations 运行bundle并运行rails g client side validations install 安装没有创建任何 js 文件 因此我创建了它们并将 HitHub 中的代码
  • 为什么 Android FireMonkey 应用程序中的控件不能跨越多列或多行?

    我有一个带有 GridPanelLayout 的 FireMonkey 应用程序 与客户端对齐 它有 6 列和 16 行 控件包括字形 编辑和按钮 TEdit 跨越多列 TButton 跨越多列和行 目前 控件全部与客户端对齐 当我在 Wi
  • 如何使用MAIL_FROM_ADDRESS?

    目前 我正在开发一项功能 要求应用程序向客户 用户发送电子邮件 发送电子邮件已经可以正常工作 但是 我希望隐藏 替换发件人的电子邮件 我以为MAIL FROM ADDRESS in env文件是我所需要的 但它没有给我我所期望的 这是我的
  • Uploadify 插件不调用 Java Servlet

    我刚刚开始使用 Uploadify flash 插件而不是标准 HTML UI 并遇到了下一个问题 当我单击 上传文件 链接时 会显示进度并出现 已完成 状态 但实际上 它没有发生任何事情 Java Servlet 不是从后端调用的 有上传
  • 将 UIButton 的背景颜色从白色动画变为红色

    我正在尝试制作一种颜色脉冲效果来动画背景颜色UIButton使其连续从一种颜色 白色 变为另一种颜色 红色 我正在尝试使用CABasicAnimation用于更改不透明度 但我也无法使其与颜色一起使用 CABasicAnimation th
  • 安全发送 PHP 从 iOS 获取信息

    情况是这样的 我有一个 iOS 应用程序 其中有一部分用户将信息输入到特定标签中 然后我根据用户给定的信息创建一个 URL 请求 并将其发送到我的 PHP 后端 URL 遵循以下结构 http www somewebsite com sen
  • Bazel 和 Gradle 有什么区别?

    谷歌刚刚开源的 https github com bazelbuild bazel它的构建工具Bazel https bazel build 这个工具和之前有什么区别Gradle https gradle org 它能做什么 Gradle
  • Open Shift Angular 8 应用程序内存不足问题

    我正在为 openshift Angular 8 应用程序使用 Modern Web App 映像 但应用程序因 npm build 内存不足问题而失败 错误日志 usr libexec s2i assemble 第 62 行 296 被杀
  • Subversion 分支重新整合

    当分支重新集成到主干时 该分支实际上已经死亡了吗 您可以在重新集成后对分支进行修改并稍后将其合并回主干吗 你可以从技术上做到这一点 你的分支没有死亡也没有禁用 但不建议在重新集成后从分支合并到主干 您可以在这里找到有关其原因的完整讨论 Su
  • 选择不同的列并按列的子集进行分组

    我正在使用 SQL Server 2008 我陷入了这个恶性循环DISTINCT and GROUP BY 我有以下虚拟表myTable ID Street City PostalCode ProjectID Date NameId 1 B
  • OpenCV C++ 中跟踪物体的背景扣除和光流

    我正在开发一个项目 使用背景扣除来检测感兴趣的对象 并使用 OpenCV C 中的光流来跟踪它们 我能够使用背景扣除来检测感兴趣的物体 我能够在单独的程序上实现 OpenCV Lucas Kanade 光流 但是 我陷入了如何将这两个程序合
  • iOS YTPlayerView 强制视频质量

    我目前正在使用iOS youtube player helper我们的应用程序中的库 有一个视图控制器 带有YTPlayerView它的宽高比为 16 9 这意味着它只占据屏幕的一部分 视频以中等格式加载 无论如何 我都无法使其以 720P
  • MongoDB 脚本基础知识 - 如何

    MongoDB 脚本的基础知识是什么 我认为剧本将以 js 我们使用它来运行它mongo try js 但如果我把 print db foo find in try js并使用mongo try js 它会说 MongoDB shell v
  • C++ Linux (Ubuntu) 正确写入串行(对于 Arduino)

    我想知道是否有一种标准方法可以与高效的串行设备进行通信 我应该使用标准库吗 如果有 是哪一个 现在我正在摆弄让 LED 根据输入的数字以给定的量亮起 Arduino 代码如下 只是练习一些东西 看我过于简单且低效的测试 include
  • 如何处理R中的浮点错误

    考虑以下 R 函数 is sqrt lt function x y if x 2 y TRUE else FALSE 它回答 x 是否是 y 的平方根 如果 y 是完全平方数 则函数的行为符合预期 is sqrt 2 4 返回 TRUE i
  • 比较和替换 SQL Server 中字符串中的字符

    我有一个字符串说 Hel 1 oO Input string Hel 1 oO 我想创建一个函数来解析字符串 Hel 1 oO 并将字母数字以外的所有字符替换为 基本上我想使用正则表达式作为 A Za z0 9 这样除了这些字符之外的所有字
  • 从 iOS 照片库中删除图像[重复]

    这个问题在这里已经有答案了 我创建了一个应用程序 它从手机的照片库中获取图像并将其显示在集合视图上 现在 我希望每当用户选择图像并单击删除按钮时 该特定图像就会从集合视图和图像库中删除 我正在使用 ALAssetLibrary 来获取图像
  • 为什么启动流式查询会导致“ExitCodeException exitCode=-1073741515”?

    一直在尝试适应新的结构化流媒体 但一旦我开始 它就会一直给我以下错误 writeStream query 知道是什么原因造成的吗 如果您在本地和 HDFS 之间拆分检查点和元数据文件夹 我能找到的最接近的是一个正在进行的 Spark 错误
  • 调用方法时出现参数数量错误

    我有课AClass和一个方法someMethod得到一个Object数组作为参数 public class AClass public void someMethod Object parameters 主要是 当我尝试在我创建的对象上调用
  • Pubnub 推送通知不适用于跨平台移动应用程序

    我们正在开发一个基于 cordova 的 Android 应用程序 它具有聊天功能 我们正在从服务器发送测试聊天消息 当应用程序位于前台时 我们收到的消息很好 我们希望当应用程序在后台时收到有关聊天消息的通知 但是我们没有收到任何有关聊天消