【问题标题】:Push notification on Android doesn't received when app is open应用打开时未收到 Android 上的推送通知
【发布时间】:2013-08-07 09:05:52
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    这是设计使然,并遵循正常的 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 推送消息的详细说明,请参阅相关帖子:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多