在cordova android中在状态栏中显示多个推送通知

4
我已经成功地在cordova中使用这个推送插件实现了推送通知。一切都运行正常,但问题在于如果接收到多个通知,只有最新的通知可用。我已经参考了这个答案,但它使用的是旧插件。
以下是我从答案中尝试的代码。
int notId=0;
try {
  notId = Integer.parseInt(extras.getString("notId"));
}
catch(NumberFormatException e) {
  Log.e(TAG, "Number format exception - Error parsing Notification ID: " + e.getMessage());
}
catch(Exception e) {
  Log.e(TAG, "Number format exception - Error parsing Notification ID" + e.getMessage());
}

notId++;
mNotificationManager.notify((String) appName, notId, mBuilder.build());

notId 始终等于 0,这样就不会显示多个通知。将 notId 声明为全局变量,它将正常工作。 - Hanh Le
你的意思是将其声明为全局类变量? - Blessan Kurien
在 createNotification 函数之外定义 notId。 - Hanh Le
我尝试了但没有成功。 - Blessan Kurien
你能展示一个代码示例吗? - Blessan Kurien
你必须理解每个 Android 通知都有一个 ID。如果你想显示多个通知,你必须确保每个通知的 ID 不同于其他通知。 - Hanh Le
1个回答

6
Phonegap的PushPlugin通过使用从GCM服务器传递的通知的notId属性来区分多个通知。
您需要在发送通知到GCM服务(而不是手机上)时,在您的服务器上生成一个唯一的notId属性。
(notId属性是通知数据对象上的属性,就像message和title一样。)
我也想警告您,插件的当前版本v2.4.0有一个错误,因此当用户单击通知时,您的应用程序仍将仅收到最新数据的通知。这个问题的修补程序在这里:https://github.com/phonegap-build/PushPlugin/pull/333

你救了我..谢谢伙计。我希望我能在某些答案上投票不止一次。 - Vignesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接