【问题标题】:Customizing PushPlugin for cordova. (For android)为科尔多瓦定制 PushPlugin。 (适用于安卓)
【发布时间】:2015-08-23 11:52:06
【问题描述】:

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

  1. 当应用程序暂停或关闭时,pushBundle 未传递给应用程序。 (这个问题有很多挣扎。这个问题也在 gitbucket 上讨论过。 关于如何解决这个问题的讨论不是很清楚。所以我也在写这个问题并回答它。)

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

  3. 我正在做一些适合我的应用的更改。

【问题讨论】:

  • 好问题。我answered之前也有类似的问题。它可能解决了#1 和#2。请在PushPlugin 创建并提交拉取请求,并在我的回答中添加评论。这样更多的人会知道这个解决方案。它甚至可能被合并到原始存储库中。
  • 此外,如果您将这个问题专门用于一个目的,它会不那么复杂。您可以在不同的问题中解决 #3 中的所有更改。

标签: android cordova phonegap-pushplugin


【解决方案1】:

因此,根据作者的说法,您每次打开应用程序时都必须向 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 插件进行更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 2017-12-31
    相关资源
    最近更新 更多