2015-01-27 3 views
3

Я использую синтаксический анализ для моего приложения ios (используя xcode). Я хочу отслеживать приложение и push-отверстия. Состояние фона и неактивное состояние работают, но передний план выходит из строя. В то время как я получаю толчок в переднем плане Распахнув статистики остается на 0. Это то, что я до сих пор ..Parse: Foreground Push Open Tracking

Я надеюсь, что кто-то может помочь мне :-)

- (void)application:(UIApplication *)application 
didReceiveRemoteNotification:(NSDictionary *)userInfo 
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { 
    if(application.applicationState == UIApplicationStateInactive) { 

     NSLog(@"Inactive"); 
     [PFPush handlePush:userInfo]; 
     completionHandler(UIBackgroundFetchResultNewData); 
     [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo]; 

    } else if (application.applicationState == UIApplicationStateBackground) { 

     NSLog(@"Background"); 
     [PFPush handlePush:userInfo]; 
     completionHandler(UIBackgroundFetchResultNewData); 
     [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo]; 

    } else { 

     NSLog(@"Active"); 
     [PFPush handlePush:userInfo]; 
     completionHandler(UIBackgroundFetchResultNewData); 
     [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo]; 

    } 
} 

ответ

2

Я хочу для отслеживания приложения и push-openings. Состояние фона и неактивное состояние работают, но передний план не работает

Parse фактически не отслеживает push-уведомления, принимаемые, когда приложение находится на переднем плане. Думаю, причина в том, что цель push-уведомления - заставить пользователя вывести приложение из фона на передний план. Если приложение уже находится на переднем плане, push-уведомление является избыточным для этого пользователя и, следовательно, для вашей аналитики.

Но если вы все еще заинтересованы в отслеживании пользователей получать уведомления толчка, когда приложение находится на переднем плане вы можете сделать две вещи:

A) Реализовать application:didReceiveRemoteNotification: функцию своего приложения делегата, как это:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 
     PFAnalytics.trackAppOpenedWithRemoteNotificationPayload(userInfo) 
     PFPush.handlePush(userInfo) 
    } 

Сравните это с Parse's recommended implementation, который вызывает trackAppOpenedWithRemoteNotificationPayload только если application.applicationState == .Inactive

Таким образом, это означает, что аналитика Push Analytics будет считать все толками, полученными как «Push Opens».

B) Трек получил уведомление толчка, когда приложение находится на переднем плане в качестве отдельного аналитического мероприятия:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 

     if application.applicationState == .Inactive { 
      // The application was just brought from the background to the foreground, 
      // so we consider the app as having been "opened by a push notification." 
      PFAnalytics.trackAppOpenedWithRemoteNotificationPayload(userInfo) 
     } 
     else if application.applicationState == .Active { 
      PFAnalytics.trackEvent("Received Push while app was in the foreground") 
     } 

     PFPush.handlePush(userInfo) 
    } 
+0

спасибо вам Эрики :) – Aleksandar