2

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

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

4

1 回答 1

0

这是设计使然,并遵循正常的 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;
}

但是请注意更改此代码的任何不良副作用。可能还有其他功能取决于此方法(现在和将来)。


有关如何接收 Parse 推送消息的详细说明,请参阅相关文章:

于 2015-08-05T12:10:53.870 回答