推送通知不在后台接收但在前台工作

时间:2014-09-14 05:25:38

标签: ios objective-c iphone push-notification

当我的应用处于前台时它可以在

中接收推送通知
- (void)application:(UIApplication *)application 
                       didReceiveRemoteNotification:(NSDictionary *)userInfo {

    NSLog(@"%@",userInfo);

}

登录控制台 -

{

    app =     {

        alert = dsafdas;

        badge = 1;

        sound = "myringtone.caf";

    };

}

但问题是当应用程序在后台没有显示推送通知时。

在应用的设置中

ALERT STYLE - Banners

徽章应用图标 - enabled

声音 - enabled

有什么问题?

3 个答案:

答案 0 :(得分:3)

问题是:app应为aps

{
    aps :  {

而不是

{
    app :  {

答案 1 :(得分:2)

didReceiveRemoteNotification中调用

foreground,在后台模式下,用户需要点按以激活应用。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if ( application.applicationState == UIApplicationStateActive ){
      NSLog(@"app was already in the foreground");
    }
    else{
       NSLog(@"app was just brought from background to foreground");
    }
    NSLog(@"%@",userInfo);
}

答案 2 :(得分:0)

didReceiveRemoteNotification

肯定会工作(如数据库操作或网络访问)。但在应用程序处于前台之前,它不会显示日志输出。

N.B:要在后台工作,您需要打开功能。