2
我正在使用PhoneGap plugin向Android应用程序发送推送通知。它的工作很好。但问题是,当应用程序打开时,通知不被接收,但如果我关闭应用程序,然后通知进入。当应用程序打开时未收到Android上的推送通知
可能是什么原因。即使应用程序正在运行,我也希望在系统托盘中发送推送通知。
我正在使用PhoneGap plugin向Android应用程序发送推送通知。它的工作很好。但问题是,当应用程序打开时,通知不被接收,但如果我关闭应用程序,然后通知进入。当应用程序打开时未收到Android上的推送通知
可能是什么原因。即使应用程序正在运行,我也希望在系统托盘中发送推送通知。
这是设计并遵循常规UI约定。
幸运的是,插件是开源的,你可以改变行为。
传入的推送消息由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;
}
但是请注意更改此代码的任何不必要的副作用。可能有其他功能取决于此方法(现在和未来)。
见相关职位如何解析接收推送消息一个很好的解释: