我花了将近3天的时间让PushPlugin与我的应用一起工作。我有以下问题
为此,我必须按照“ https://github.com/kentmw/PushPlugin”的建议修改PushPlugin
当应用暂停或关闭时,pushBundle没有传递给应用。
(这个问题有很多困扰。这个问题也在gitbucket上进行了讨论。
关于如何解决此问题的讨论还不是很清楚。所以我正在写这个问题并回答。)
如果用户清除(未单击)通知,则pushBundle不会传递到应用程序。
我正在做一些其他适合我的应用程序的更改。
最佳答案
因此,根据作者的说法,您每次打开应用程序时都必须在Google GCM服务器上注册应用程序,以便在收到通知时可以使用回调函数进行调用。
因此,我进行了以下更改。
在插件中,更改差异为here。
在此更改中,对pushCachedExtras()
的查找非常深刻。在什么场合被称为。
对2个文件所做的更改1. src/android/com/plugin/gcm/PushPlugin.java
2. www/PushNotification.js
在您的代码中,您必须执行类似的操作
if(ALREADY_REGISTERED) {
pushNotification.setECB(success, error, { "senderID" :"SENDER_ID_HERE","ecb": "window.onNotificationGCM" });
} else {
pushNotification.register(success, error, { "senderID" :"SENDER_ID_HERE","ecb": "window.onNotificationGCM" });
}
每次您必须在应用程序启动时使事件回调可用时,直到那时pushBundle都是
"cached"
。调试插件
adb logcat -s GCMIntentService:* PushPlugin:*
注意:我正在研究2点和3点,并且还将对iOS的插件进行更改。