应用程序打开时,未收到Android上的推送通知

时间:2013-08-07 09:05:52

标签: android cordova push-notification google-cloud-messaging

我正在使用PhoneGap plugin向Android应用发送推送通知。它工作得很好。但问题是当应用程序打开时,没有收到通知,但如果我关闭应用程序,则会收到通知。

可能是什么原因。即使应用程序正在运行,我也希望在系统托盘中提供推送通知。

1 个答案:

答案 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推送消息的详细解释,请参阅相关文章: