我尝试在我的主类( ViewDidLoad )中执行以下代码,但显然横幅仅出现在我的手机上。我注意到通知确实在通知中心弹出。只是在屏幕上,当应用程序仍然保持 Activity 状态时,横幅没有出现。
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.alertBody = @"Test Push Notification";
localNotif.applicationIconBadgeNumber = 1;
localNotif.soundName=@"default";
[application presentLocalNotificationNow:localNotif];
我也实现了 scheduleLocalNotification 来进行测试,但是结果是相同的。
我不太确定这是怎么回事。任何帮助或评论将不胜感激。
最佳答案
如果您的应用程序位于前台,您将不会看到本地通知。从documentation:
如果您的应用程序位于最前面,
application:didReceiveRemoteNotification:
或
在其应用程序上调用application:didReceiveLocalNotification:
方法
代表
这意味着您应该在应用程序委托中实现这些方法。这是一个这样做的例子:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Message", nil)
message:notification.alertBody
delegate:self
cancelButtonTitle:NSLocalizedString(@"OK", nil)
otherButtonTitles:nil];
[alert show];
}
(代码来自this SO answer)