应用程序在后台推送通知

时间:2013-03-22 10:08:21

标签: iphone ios push-notification apple-push-notifications

假设一个场景:用户A和用户B有2个用户。用户A向用户B发送推送通知,但此时应用程序位于用户B侧的后台。现在的问题是用户B没有收到通知,因为应用程序处于后台,但是一旦应用程序再次购买到应用程序就会收到通知。有没有办法让用户B也能在后台状态下获得通知。 此外,如果应用程序的警报样式在设备的“设置”应用程序中由用户配置为“无”,这是否会阻止他在应用程序处于后台时收到通知。?

提前致谢!!

4 个答案:

答案 0 :(得分:1)

如果用户禁用警报通知,他将不会收到此类警报。 否则,即使应用程序未运行,他也会立即收到警报。

答案 1 :(得分:1)

从您的问题中我了解到,您希望在后台模式下收到通知时运行一些代码...

首先进入目标菜单->功能->在后台模式enter image description here

然后在您的AppDelegate内部,将代码添加到当应用程序处于后台模式时将触发的方法下

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {}

**但请记住最重要的事情**

您的推送通知结构必须包含 content_avialable = 1

示例:

    {
    aps =     {
        alert =         {
            body = "new message";
            title = "I";
        };
        "content_available" = 1;
    };
    "click_action" = "GOTO_M";
    data =     {

    };
    "gcm.message_id" = ;
    "google.c.a.e" = 1;
}

答案 2 :(得分:0)

这实际上是推送通知的内容。如果您允许应用向您发送推送通知,即使应用在后台,您也会收到推送通知。我建议你阅读如何发送推送通知。

另一种选择是让应用程序本身显示通知,这仍然可以在应用程序处于后台时完成。

当他们将警报样式设置为无并转动通知时,他们将不再接收推送通知。但话说回来,如果他们不愿意,他们就不应该得到任何东西。

答案 3 :(得分:0)

关于你的第二个问题:

  

如果用户配置了应用程序的警报样式   设备的“设置”应用中的“无”可能会阻止他进入   当应用在后台时收到通知?

如果用户将“无”设置为“警报样式”,则会收到通知但未显示。但是,用户仍然可以在通知中心中看到该推送消息。那就是手机不会在屏幕上显示警报。

现在回答您的第一个问题,即使应用程序处于后台,也会收到正确实施的推送通知。