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

时间:2015-03-25 09:51:25

标签: ios xcode uilocalnotification

接收远程通知和使用应用时如何显示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];

但它也不起作用。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

Apple不支持从前台状态显示本地通知。

Local Notification Reference

但是你可以尝试使用它:

https://github.com/avielg/AGPushNote

答案 1 :(得分:1)

如果应用程序在通知发送时正在运行,则屏幕上不会显示任何警报。应用程序自动调用其委托的应用程序:didReceiveLocalNotification:method

答案 2 :(得分:-3)

为了在应用程序位于前台时查看用户界面,您需要自己处理显示。

您可以从屏幕顶部创建自己的视图并为其设置动画,然后在延迟一段时间后将其设置为动画。

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