2015-01-09 127 views
0

我有一个Worklight应用程序执行推送通知。发送推送会导致通知出现在Android和iOS上的通知栏中,如预期的那样。如果在应用程序运行时收到推送,它会按照它应该调用的消息处理函数。收到消息时推送通知iOS不起作用

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

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

编辑:

我做斗争,以言语表达的情况下,无法找到有意义的话语权,但你做了伊詹的步骤是什么,我试图做正确的大部分。我们正在做基于标签的通知,因此与您所做的不同。我们还利用PersistentCookieAuthentication因为他们想推送通知用户不用在明确登录发送。

  1. 目前,我们正在使用WL建立6.2.0.01-20141216-0427
  2. 我们已经在尝试了几个不同的型号,运行8.0.2的iPhone 4s和运行8.1.2的iPhone 5。基于编辑的问题
+0

你能用更好的措辞编辑中段吗?有些东西听起来不符合逻辑。当应用程序关闭时,您会在该段落中开始您的解释,但突然之间,您会说在应用程序打开时它不起作用。澄清。 – 2015-01-09 21:16:18

+0

这个测试过哪些设备? – 2015-01-11 07:25:02

+0

数字狼,基于标记的通知根本不需要登录,只有基于事件源的通知才需要。广播和标签通知都只需要将设备(不是特定用户)订阅到标签,然后通知将发送到该设备。在广播/标签中没有“多用户订阅”,因为您使用的是事件源。您将需要提供与发送和接收通知相关的实际代码,以便进一步调试。 – 2015-01-12 16:01:03

回答

0

编辑:

基于标签的通知不需要任何登录,因为它是要订阅到您在应用程序descriptor.xml定义任何标签的设备;它不是基于登录的,所以你所做的任何类型的登录都是不相关的。推送将被发送到使用subscribeTag API订阅了您的标签的任何设备(应用程序...)。

我在iOS中使用基于广播的通知(基本上是基于标记的通知)做了另一个测试。我将该应用程序保留在后台并发送了通知。点击通知栏中的传入通知将应用程序引导至前台,然后显示传入通知的警报。

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


我一直在尝试了解您的情况......我怀疑您遗漏了某些东西或需要更好地说出问题描述。

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

  1. 推出样品的推送通知的应用程序在设备上
  2. 已登录在>已申请
  3. 退出应用(其使用事件基于源的通知)

我然后通过调用适配器发送的通知在工作室

  1. 通知到达并显示在通知栏
  2. 攻通知启动的应用程序
  3. 已登陆

然后显示通知提醒。
然后,我将应用程序移至背景。

  • 发送另一个通知,这是到达
  • 攻丝该第二通知带来了应用到背景时显示在通知栏,显示所述警报
  • 我然后将应用程序保留在后台。

  • 发送第三通知
  • 在这种情况下,因为应用程序是在前台,通知没有在通知栏中显示 - 如预期 - 而是立即显示警报。

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

    当你编辑的问题,也提到了以下几点:

    • 工作灯版本和版本号
    • 设备型号
    • 二手IOS版本

    我所知道的一个可能的问题(APAR#PI31988),目前正在调查中,其中的基础本地代码调度消息在JavaScript框架准备好处理它之前,因此不显示消息。这被发现发生在iPhone 4等较慢的设备上。