iOS推送通知在不同的应用程序状态下工作不同

时间:2013-09-18 14:47:24

标签: iphone ios objective-c

我将10行消息发送到APNS。当应用程序处于后台时,我会收到所有消息。 但是当应用程序处于前台时,我会收到8个通知。

这里有什么问题?

这是我的代码非常简单:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    NSLog(@"Test push...");
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound|UIRemoteNotificationTypeNone)];
    [self checkForRegisteredUser];
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
    return YES;
}

1 个答案:

答案 0 :(得分:0)

不确定这是你想要的,

以下是推送通知的工作原理,

因此,当您的应用程序在后台运行时,您的应用程序将永远不会收到来自APN的推送通知,但是当它们从服务器发送消息时,它将显示在您的通知托盘中。

但是如果你的应用程序在前台。 app app delegate中的方法

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{

将收到通知,并将执行您在其中定义的必要操作。

如果您没有收到通知,则需要检查网络连接。

我开发了一个类似于你的应用程序,它的效果与你期望的一样好。