收到远程通知时如何显示 UILocalNotification?

How can show UILocalNotification when receive remote notification?

收到远程通知和使用应用程序时如何显示UILocalNotification?不是 UIAlertView?

我正在使用此代码,但它没有显示任何内容

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
    }


    localNotification = [[UILocalNotification alloc] init];
    NSString *message = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"];
    localNotification.applicationIconBadgeNumber = 0;
    localNotification.alertBody = message;
    localNotification.soundName = UILocalNotificationDefaultSoundName;
    localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:0];
    localNotification.timeZone = [NSTimeZone defaultTimeZone];
    localNotification.alertAction = @"ok!!!";
    [application scheduleLocalNotification:localNotification];
}

我也试过:

[application presentLocalNotificationNow:localNotification];

但它也不起作用。

有人可以帮忙吗?

A​​pple 不支持显示来自前台状态的本地通知。

Local Notification Reference

但是你可以尝试使用这个:

https://github.com/avielg/AGPushNote

如果在发送通知时应用 运行,则屏幕上不会显示任何提醒。应用程序自动调用其委托的 application:didReceiveLocalNotification: 方法

为了在您的应用程序位于前台时看到 UI,您需要自己处理显示。

您可以创建自己的视图并从屏幕顶部开始动画,然后在延迟一段时间后将其重新动画化。

正如其他答案所提到的,有一些可用的开源项目可以使这个更容易实现:除了 AGPushNote 我还发布了一个具有类似功能的 pod