0

我正在处理游戏的通知方面,iOS 处理本地通知的方式有问题。

在代表的文件中,application:didReceiveLocalNotification它说明了以下内容:

If the application is running in the foreground, there is no alert, badging, or sound; instead, the application:didReceiveLocalNotification: method is called if the delegate implements it.

但是,当应该弹出本地通知并且我的应用程序在前台运行时,它将首先触发该委托(它是空的),然后无论如何都会显示警报。

我想知道当应用程序在前台运行时专门处理本地通知的方法。这甚至可能吗?

为什么我需要这个的简短示例:当玩家开始建造时,会创建一个本地通知以在建筑完成时提醒他(最多 6 小时)。但是,如果用户在游戏中应该弹出此通知,我不想显示它,因为他已经可以看到建筑物已完成。

谢谢

4

2 回答 2

3
application:didReceiveLocalNotification:

您需要处理是否要将通知显示为警报、徽章或声音。因此,当您的应用程序在后台时,弹出警报/徽章/声音将通知用户有关消息(在您的情况下,建筑物已完成)。但是您可以选择在委托方法中忽略它。

编辑:一旦方法被触发并且您的应用程序处于活动状态,您可以丢弃通知

[[UIApplication sharedApplication] cancelLocalNotification:myNotification];

您认为它会在前台弹出的假设是错误的。

于 2012-11-07T10:41:36.020 回答
1

如果您调用cancelAllLocalNotifications:它,即使通知已经触发,它也会关闭当前显示的警报。

于 2012-11-07T10:38:29.217 回答