我正在使用PhoneGap plugin向Android应用发送推送通知。它工作得很好。但问题是当应用程序打开时,没有收到通知,但如果我关闭应用程序,则会收到通知。
可能是什么原因。即使应用程序正在运行,我也希望在系统托盘中提供推送通知。
答案 0 :(得分:0)
这是设计使用并遵循常规用户界面惯例。
幸运的是,插件是开源的,你可以改变行为。
传入的推送消息由GCMIntentService
处理。
onMessage()
方法检查应用是否在前台:
if (PushPlugin.isInForeground()) {
extras.putBoolean("foreground", true);
PushPlugin.sendExtras(extras);
}
else {
extras.putBoolean("foreground", false);
// Send a notification if there is a message
if (extras.getString("message") != null && extras.getString("message").length() != 0) {
createNotification(context, extras);
}
}
修改if (PushPlugin.isInForeground()) {...}
语句以完成您的需要。
另一种方法是修改PushPlugin.isInForeground()
本身的代码。
public static boolean isInForeground()
{
return gForeground;
}
但请注意更改此代码的任何不必要的副作用。可能还有其他功能取决于此方法(现在和将来)。
有关如何收到Parse推送消息的详细解释,请参阅相关文章: