2015-03-25 63 views
1

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

我使用此代码,但它没有显示任何

- (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]; 

但它不工作了。

任何人都可以帮忙吗?

回答

2

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

Local Notification Reference

但是你可以尝试使用这样的:

https://github.com/avielg/AGPushNote

+0

虽然这可能在理论上回答这个问题,但[这将是更可取的](// meta.stackoverflow.com/q/8259)在这里包括答案的基本部分,并提供供参考的链接。 – 2016-04-16 12:31:58

1

如果在通知下发的应用程序正在运行,则在屏幕上没有显示警报。应用程序自动调用其代表的应用程序:didReceiveLocalNotification:方法

-3

为了在应用程序处于前台时查看UI,您需要自己处理。

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

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

+1

也请避免发布多个答案,只是链接到您自己的产品,因为它可能被视为垃圾邮件。相反,定制每个问题的答案,并记得提供一个代码示例,展示如何使用这个工具 – 2016-04-16 12:24:47

+0

是的,你已经挫败了我的计划,致力于麻烦MIT许可证。 ;) – buildsucceeded 2016-04-16 12:25:30

相关问题