当APP处于后台但未暂停且APP打开时,推送通知不起作用

时间:2016-02-25 07:13:32

标签: android ios cordova push-notification phonegap-plugins

在Android和iOS中,当应用程序处于前台/打开状态或者处于后台但未暂停(未被杀死)时,在APP上收到新推送时,不会弹出推送通知。

要接收新推送弹出窗口,我需要杀死应用程序,然后才会收到它。

我正在使用以下用于cordova的插件: https://github.com/phonegap/phonegap-plugin-push

Cordova版本: 5.3.1

如果有人能指出我正确的方向,我确实试图为此找到解决方案,那么这将非常有帮助。

2 个答案:

答案 0 :(得分:1)

是的,此插件以这种方式工作,触发了接收的javascript事件,但当应用处于前台时,通知栏中不会显示通知。

在android中,在上一个版本中,你可以改变这种行为,像这样做你的init:

that.push = PushNotification.init({ 
                        "android": {
                            "senderID": that.GOOGLE_SENDER_ID,
                            "iconColor": "gray",
                            "icon": "icon_notification",
                            "forceShow": true
                        },
                        "ios": {}, 
                        "windows": {} 
                });

forceShow,允许应用在应用处于前台时显示通知。

在这一刻IOS是不可能的,有一个拉取请求来实现,对于1.6版本,但是我尝试了代码并且我一直无法使其工作

这里有链接

https://github.com/phonegap/phonegap-plugin-push/pull/383

到目前为止,我在IOS中做了一个workarround,通过JS显示虚假通知,使用此库

http://taitems.github.io/UX-Lab/iOSNotification/index.html

此外,我不知道为什么通知没有显示APP何时被暂停,这在Android和IOS都会发生?

在IOS中,您必须添加推送通知和后台模式的功能 - >后台提取和远程通知。也许这是你的问题。

快乐的编码!

答案 1 :(得分:0)

我没有使用过cordova,但回答你的线索可能会对你有帮助。

点击here了解更多详情

应用处于非活动状态时,通知会发送到通知托盘。对于活动的iOS应用程序,通知会传递给didReceiveRemoteNotification:。对于有效的Android应用,通知有效内容会传递到数据包中通知键下的 onMessageReceived()

所以json从服务器发送你应该遵循this 特别关键" click_action"。