我正在处理游戏的通知方面,我对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个小时)。但是,如果用户在游戏中弹出此通知时我想不显示它,因为他已经可以看到建筑物已经完成。
谢谢
答案 0 :(得分:3)
application:didReceiveLocalNotification:
您需要处理是否要将通知显示为提醒或徽章或声音。因此,当您的应用程序在后台时,弹出警报/徽章/声音将通知用户该消息(在您的情况下,建筑物已完成)。但您可以选择在委托方法中忽略它。
编辑: 一旦触发该方法并且您的应用程序处于活动状态,您就可以放弃该通知
[[UIApplication sharedApplication] cancelLocalNotification:myNotification];
您认为在前台出现时会弹出错误。
答案 1 :(得分:1)
如果您致电cancelAllLocalNotifications:
,即使通知已被解雇,它也会解除当前显示的提醒。