我也尝试过官方的PushPlugin和其他分叉。我遇到的唯一问题是当我们收到多个推送通知时(应用程序处于后台/停止状态)。在这种情况下,我们必须明确地单击通知以打开应用程序(处于后台/停止状态)。 我们会收到与我们点击的通知相关的有效负载。
问题很容易解决,如果 1.一旦通知到达,我们就会执行javascript回调。 2.在状态栏中单击单个通知时,我们应该能够获取托盘中仍存在的所有通知。
我已经从拉请求中分叉了
https://github.com/phonegap-build/PushPlugin/pull/333
并试图玩代码,但事情没有达到预期。
答案 0 :(得分:0)
在我的聊天应用中。我使用推送通知和信号器来实现你的目的。
当用户x向用户y发送新消息时,当signalr Server从x获取消息时,它将消息存储在sql中。
此时,用户Y可能处于下列情况之一:
案例1:用户Y在线并且在前台并且已经与X聊天,然后SignalR服务器调用用户Y的javascript函数来更新Y的显示,以便Y可以立即看到消息并听到声音。
案例2:用户Y在线但在后台(或者用户Y在前台但不在与x聊天的屏幕中,例如,Y与Z聊天),然后 SignalR服务器调用用户Y的javascript函数来更新Y的显示,然后使用推送通知向Y发送通知并播放另一个声音,这样当Y看到通知时,单击它,Y可以看到新消息
案例3:用户Y离线或用户Y关闭应用程序,然后 SignalR服务器什么都不做(因为没有连接Y所以无法完成)。推送通知什么都不做。但是,当用户Y再次联机时,它会从服务器读取是否有任何待处理的新消息。