如何处理正常和后台静音推送通知?

时间:2014-10-21 09:48:18

标签: ios objective-c xcode push-notification apple-push-notifications

我正在尝试为后台提取实现静默推送通知。 现在,我在AppDelegate中实现必要的代码时遇到了一个问题。

在我有以下功能之前,为了处理推送通知:

-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    NSLog(@"Just Received a push!");
...
}

我添加了以下函数来处理后台提取静默通知:

//backgroundDownloadTask
- (void) application:(UIApplication *)application
  didReceiveRemoteNotification:(NSDictionary *)userInfo
        fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"Just Received a push!");
   ....
}

奇怪的是,当我收到正常通知时,它也进入了第二个功能,第一个(旧)似乎现在最无用,所以我添加了以下内容来区分正常和静默:< / p>

    //backgroundDownloadTask
    - (void) application:(UIApplication *)application
      didReceiveRemoteNotification:(NSDictionary *)userInfo
            fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
    {
        NSLog(@"Just Received a push!");
        NSDictionary *dict = [userInfo objectForKey:@"aps"];

        if([dict objectForKey:@"content-available"])
        {
//silent
        }
      else
       {
//normal push
       }
}

但问题是当我在前台并且我收到推送时,没有功能正在执行,因为没有接收到推送(可能因为第二个功能仅用于后台)。

那我怎么能处理两次推送?任何的想法 ? 谢谢,

0 个答案:

没有答案