我尝试在我的主类( 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)

10-07 19:33
查看更多