应用程序位于前台时推送通知样式

时间:2015-02-04 16:39:50

标签: ios push-notification uialertview

当我测试我的iOS应用时,我将通知样式首选项设置为横幅样式。这适用于我的应用程序不在前台(在后台或关闭)。但是,当应用程序位于前台时,通知显示为UIAlertView

这是Apple的设计吗?或许我错过了一些我可以申请的设置?

2 个答案:

答案 0 :(得分:1)

您可以使用application:didReceiveRemoteNotification:fetchCompletionHandler:内的AppDelegate.m。这样您就可以按照自己的方式处理通知。有时它不需要在UIAlertView内显示任何内容,但您想要更新特定的UILabels或更新内容。您还可以获得userInfo,其中您可以获得有关Push的更多具体信息。您还可以确定目前的模式:

if ( application.applicationState == UIApplicationStateInactive 
     || application.applicationState == UIApplicationStateBackground  ) {

} else {

}

The Documentation says:

  

使用此方法处理应用的传入远程通知。   与应用程序不同:didReceiveRemoteNotification:方法,即   只有当您的应用程序在前台即系统中运行时才会调用   当您的应用在前台运行或运行时调用此方法   背景。此外,如果您启用了远程通知   在后台模式下,系统启动你的应用程序(或从中唤醒它)   暂停状态)并在推送时将其置于后台状态   通知到了。但是,系统不会自动进行   如果用户强行退出,请启动您的应用。在那种情况下,   用户必须重新启动应用程序或在系统之前重新启动设备   尝试再次自动启动您的应用。

答案 1 :(得分:0)

" 当应用处于前台时,通知显示为UIAlertView。"

除非您已经写过在ApDelegate的didReceiveRemoteNotification:方法中显示警报,否则不应该这样做。当您收到推送通知时,将调用该方法。

如果你想显示一些吐司通知(虽然应用程序在前景中),你可以检查这个。 Get push notification while App in foreground iOS