2015-04-16 3 views
0

Я использую UIBackgroundFetchResult поймать уведомление толчка, как показано ниже кода ... Я использую доступность контента = 1 также для обнаружения в фоновом режимеобнаружить приложение открыто с нажимного уведомления (скачивает фон)

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
fetchCompletionHandler:(void (^) (UIBackgroundFetchResult))completionHandler { 

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

if ((application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground) && (NotiType == 1 || NotiType == 2)) 
    { 

} 
+2

возможно дубликат [didReceiveRemoteNotification: fetchCompletionHandler: открыт с иконки против нажимного уведомления] (http://stackoverflow.com/questions/22085234/didreceiveremotenotification-fetchcompletionhandler-open-from-icon-vs-push-not) –

+0

YEAH решаемых моя проблема спасибо !! – user3236289

ответ

1

Вы можете проверить, является ли ваше приложение запускается из APNS (Apple, сервис уведомлений Push), от способа приложения делегат

application:didFinishLaunchingWithOptions: 

В котором вы можете проверить, является ли запущен приложение от уведомления или не нравится,

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    if (launchOptions != nil) { 
      // Launched from push notification 
      NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 

    } 
} 

Если ваше приложение находится в фоновом режиме, этот метод не будет вызываться. для этого вы можете проверить другим способом таким образом,

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    if (application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground ) 
    { 
     //opened from a push notification when the app was on background 
    } 
} 

HTH, Enjoy Coding !!

+0

никогда не попадает второй функции, потому что я использую контент за доступностью = 1 он работает на - (Недействительными) применение: (UIApplication *) применение didReceiveRemoteNotification: (NSDictionary *) USERINFO fetchCompletionHandler: (аннулируются (^) (UIBackgroundFetchResult)) completionHandler { – user3236289

+0

Не добираться до вас, можете усовершенствовать его дальше. –

+0

i dont use didreceiveremotenotification i use fetchCompletionHandler: (void (^) (UIBackgroundFetchResult)) completeHandler { – user3236289

Смежные вопросы