收到消息时,向iOS推送通知不起作用

时间:2015-01-09 21:01:21

标签: push-notification ibm-mobilefirst

我有一个Worklight应用程序正在执行推送通知。发送推送会使通知按预期显示在Android和iOS上的通知栏中。如果在应用程序运行时收到了推送,它会按预期调用消息处理函数。

我遇到的问题是,如果您通过点击iOS上的通知启动应用程序,如果在应用程序运行时发送了另一个推送,则永远不会调用消息处理程序。我必须退出应用程序并完全杀死它,然后从启动器重新启动应用程序。然后,如果在应用程序运行时收到推送,它将调用消息处理程序。

这只发生在iOS上。该应用程序将在应用程序运行时响应Android上收到的消息,即使该应用程序已通过点击通知启动。

修改

我确实很难用语言表达情节,找不到合适的词语,但是你做过Idan的步骤在很大程度上是正确的。我们正在进行基于标记的通知,因此与您所做的不同。我们还使用PersistentCookieAuthentication,因为他们希望在用户不必显式登录的情况下发送推送通知。

  1. 我们目前正在使用WL build 6.2.0.01-20141216-0427
  2. 我们尝试过几种不同的型号,一台运行8.0.2的iPhone 4,一台运行8.1.2的iPhone 5.

1 个答案:

答案 0 :(得分:0)

根据编辑过的问题进行编辑:

基于标记的通知不需要任何登录,因为它是要订阅您在application-descriptor.xml中定义的任何标记的设备;它不是基于登录的,因此您正在执行的任何类型的登录都无关紧要。推送将发送到使用subscribeTag API订阅您的标签的任何设备(app ...)。

我使用基于广播的通知在iOS中进行了另一项测试(它基本上就像基于标记的通知)。我将应用程序保留在后台并发送通知。点击通知栏中的传入通知会将应用程序带到前台,然后显示传入通知的警报。

您可以使用此应用程序进行尝试:https://www.dropbox.com/s/l2yk2pbvykrzfoh/broadcastNotificationsTest.zip?dl=0 确保放置自己的.p12证书和pushSender密码。


我一直试图了解您的情况......我怀疑您遗漏了某些内容或者需要更好地说出问题说明。

以下是我尝试使用MobileFirst Platform 6.3(在6.2和6.3之间的iOS没有大幅推送更改)和运行iOS 8.1.2的iPhone 6。

  1. 在设备上启动了示例推送通知应用(使用基于事件源的通知)
  2. 已登录>订阅
  3. 退出申请
  4. 然后,我通过在Studio

    中调用适配器发送了通知
    1. 通知已到达并显示在通知栏中
    2. 点击通知已启动的应用程序
    3. 已登录在
    4. 然后显示通知警报 然后我将应用程序移动到后台。

      1. 发送了另一个通知,该通知已在抵达时显示在通知栏中
      2. 点击第二个通知会将应用程序带到后台,显示警报
      3. 然后我将应用程序保留在后台。

        1. 发送第三个通知
        2. 在这种情况下,由于应用程序位于前台,通知未显示在通知栏中 - 正如预期的那样 - 而是立即显示警报。

          如果您的方案与上述情况不同,例如:您甚至不使用基于事件源的通知,而是使用基于广播或标签的通知,或者您的应用程序流程不同等,请编辑问题有更精确的描述。

          编辑问题时,请同时提及以下内容:

          • Worklight版本和内部版本号
          • 设备型号
          • 二手iOS版

          我知道目前正在研究的一个可能的问题(APAR#PI31988),其中底层本机代码在JavaScript框架准备好处理之前调度消息,因此不会显示任何消息。发现这种情况发生在较慢的设备上,例如iPhone 4。

相关问题