我希望在应用处于活动状态时忽略推送通知。我正在处理如下通知:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if (application.applicationState != UIApplicationStateActive)
{
[[PushHelper shared] processPush: userInfo];
}
}
但是当应用程序处于活动状态且设备收到推送通知时,会显示带有通知消息的UIAlertView。如何禁用UA的默认处理?
答案 0 :(得分:6)
我遇到了同样的问题并找到了解决方案。 例如,如果使用 empty 正文定义 UAPushNotificationDelegate 协议的委托方法 displayNotificationAlert:,则不会显示自动警报:
{
...
[[UAPush shared] registerForRemoteNotifications];
[UAPush shared].pushNotificationDelegate = self;
...
}
- (void)displayNotificationAlert:(NSString *)alertMessage
{
}
答案 1 :(得分:1)
如果您不需要对推送通知本身执行任何操作,只需从代码中删除[[PushHelper shared] processPush: userInfo]
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
//nothing to do here
}
只有在应用程序运行时才会调用didReceiveRemoteNotification方法。