为科尔多瓦定制 PushPlugin。 (适用于安卓)
Posted
技术标签:
【中文标题】为科尔多瓦定制 PushPlugin。 (适用于安卓)【英文标题】:Customizing PushPlugin for cordova. (For android) 【发布时间】:2015-08-23 11:52:06 【问题描述】:我花了将近 3 天的时间让 PushPlugin 与我的应用程序一起工作。我有以下问题 为此,我必须按照“https://github.com/kentmw/PushPlugin”的建议修改 PushPlugin
当应用程序暂停或关闭时,pushBundle 未传递给应用程序。 (这个问题有很多挣扎。这个问题也在 gitbucket 上讨论过。 关于如何解决这个问题的讨论不是很清楚。所以我也在写这个问题并回答它。)
如果通知被用户清除(未点击),pushBundle 没有被传递给应用程序。
我正在做一些适合我的应用的更改。
【问题讨论】:
好问题。我answered之前也有类似的问题。它可能解决了#1 和#2。请在PushPlugin 创建并提交拉取请求,并在我的回答中添加评论。这样更多的人会知道这个解决方案。它甚至可能被合并到原始存储库中。 此外,如果您将这个问题专门用于一个目的,它会不那么复杂。您可以在不同的问题中解决 #3 中的所有更改。 【参考方案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 插件进行更改。
【讨论】:
以上是关于为科尔多瓦定制 PushPlugin。 (适用于安卓)的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 中导入工作的科尔多瓦项目给出错误
UIFileSharingEnabled 在我的适用于 ios 的科尔多瓦应用程序中无效