当我测试我的iOS应用程序时,我将通知样式首选项设置为横幅样式。当我的应用程序不在前台(在后台或关闭)时,这有效。但是,当应用程序位于前台时,通知显示为UIAlertView
。
这是苹果的设计吗?或者,也许我缺少一些可以应用的设置?
您可以在AppDelegate.m
中使用application:didReceiveRemoteNotification:fetchCompletionHandler:
。这样,您可以按照所需的方式处理通知。有时不需要在UIAlertView
内显示任何内容,但您想更新特定的UILabels
或其他内容。您还可以获得一个userInfo
,您可以在其中获得有关Push
的更具体信息。您还可以确定您目前处于哪种模式:
if ( application.applicationState == UIApplicationStateInactive
|| application.applicationState == UIApplicationStateBackground ) {
} else {
}
文件说:
使用此方法处理应用的传入远程通知。 与应用程序不同:didReceiveRemoteNotification: 方法,它是 仅当应用在前台运行时调用,系统 当应用在前台运行时调用此方法,或者 背景。此外,如果您启用了远程通知 后台模式,系统会启动您的应用程序(或将其从 挂起状态),并在推送时将其置于后台状态 通知到达。但是,系统不会自动 如果用户已强制退出应用,请启动该应用。在这种情况下, 用户必须先重新启动应用或重新启动设备,然后才能启动系统 尝试再次自动启动应用。
当应用处于前台时,通知显示为UIAlertView。
它不应该,除非,你已经写信在你的ApDelegate的didReceiveRemoteNotification:
方法中显示警报。当您收到推送通知时,将调用该方法。
如果要显示一些 Toast 通知(当应用程序位于前台时),则可以检查这一点。当应用程序处于前台 iOS 时获取推送通知