为 cordova 定制 PushPlugin。 (对于 android)

Customizing PushPlugin for cordova. (For android)

我花了将近 3 天的时间让 PushPlugin 与我的应用程序一起工作。我有以下问题 为此,我必须按照“https://github.com/kentmw/PushPlugin

的建议修改 PushPlugin
  1. 当应用程序暂停或关闭时,pushBundle 没有传递给应用程序。 (有很多人为这个问题而苦苦挣扎。这个问题也在 gitbucket 上进行了讨论。 关于如何解决这个问题,讨论不是很清楚。所以我也在写这个问题并回答它。)

  2. 如果通知被用户清除(未点击),则 pushBundle 不会传递给应用程序。

  3. 我正在做更多适合我的应用程序的更改。

因此根据作者的说法,您必须在每次打开应用程序时向 Google GCM 服务器注册您的应用程序,以便在收到通知时可以调用回调函数。

所以我相应地进行了以下更改。

在插件中的变化是不同的 here

在此更改中深入查找 pushCachedExtras()。在什么场合被调用。

已对 2 个文件进行了更改
1。 src/android/com/plugin/gcm/PushPlugin.java<br> 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:*

Note : I am working on 2 and 3 point, and shall made changes to plugin for iOS also.