【发布时间】:2014-10-31 15:25:00
【问题描述】:
我们可以在没有WLClient::connect() 的情况下使用WLPush::subscribe() 吗?
背景
我正在使用 IBM Worklight 框架开发一个 Android 本机应用程序(离线版本 - 应用程序可以在没有 Internet 的情况下工作),并且我正在实现推送通知。据我了解,我们需要WLPush::subscribe() 才能收到通知。但是我们不能直接调用 subscribe() 方法,它必须在 Callback OnReadyToSubscribeListener 中。建立连接后将调用侦听器。
面临的问题是:
- 应用已注册到 GCM
- 应用已终止
- 设备收到推送通知,我已经可以看到通知了。
但我无法获得WLEventSourceListenerinvoked... 因为我需要在subscribe 之前获得connect!这对我来说没有任何意义 - 因为我们已经在客户端控制台 (DDMS) 中显示了通知。
我知道我可能:
- 覆盖
GCMIntentService - 强制
WLClient::connect()触发TIMING
谁能提供更好的解决方案?
10 月 31 日更新
我在使用“WL Android原生推送”示例项目,发现不连接就无法获取到回调WLEventSourceListener调用。
重现步骤:
- 启动示例客户端
- 点击“连接”连接服务器
- 连接返回成功,点击“订阅”订阅
- 在 Eclipse IDE 中,右键单击推送适配器以向客户端发送推送
- 在客户端,它接收推送消息(显示在 DDMS 控制台日志中)并调用
WLEventSourceListener。 - 杀死应用程序
- 重新发送推送
- 推送消息显示在 DDMS 控制台日志中,并在通知栏中显示通知。
- 单击通知时启动应用程序。
- 再次单击连接按钮时会调用
WLEventSourceListener。
问题来了。在步骤 9 中,推送消息到达客户端,但在步骤 10 中,必须调用 connect 才能调用 WLEventSourceListener。有没有办法在不连接的情况下获取消息?
【问题讨论】:
标签: android push-notification ibm-mobilefirst