有时苹果推送通知没有收到

Some time apple push notification not getting

我正在 iOS 8 中开发一个 iOS 应用程序。它有一个名为消息发送的模块。该模块是在 Apple 推送通知的帮助下开发的。我的问题是有一段时间我们没有收到推送消息到 iOS 设备。服务器已成功将消息发送到 APNS。是否存在任何 APNS 可靠性问题?

我正在使用以下步骤:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
            if([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)])
                {
                    UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil];
                    [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
                    [[UIApplication sharedApplication] registerForRemoteNotifications];
                }
 return YES;
    }

- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
            {
               [application registerForRemoteNotifications];
            }

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
        {

        }

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
        {

        }

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
        {
        }
  • APN 不可靠,不能 100% 保证到达客户端。
  • 根据 Apple 的文档,APN 是最大努力,所以很多时候它们可能达不到。

通过answer

Samraan 没有错,Apple 不保证交货,但根据我的经验,它非常可靠。从您在此处发布的代码中我确实注意到,您对 didReceiveRemoteNotification 的实现是空的。当您的应用处于活动状态并收到推送通知时,不会显示系统横幅或警报。相反,通知会传送到 didReceiveRemoteNotification 回调,供您的应用直接处理。如果您对该函数的定义为空,并且向该设备发送通知,它可能看起来好像通知从未到达,但它只是被隐藏了。

您可以尝试向此回调添加一个 UIAlertView 弹出窗口,以查明这是否是您的情况。