Я внедрил Push Notification в своем приложении.didReceiveRemoteNotification называется дважды
Когда мое приложение находится на переднем плане, мое приложение работает нормально.
Но когда приложение находится в фоновом режиме или убито, мой didReceiveRemoteNotification
называется два раза.
Я сделал общий метод для обработки уведомления принудительного и вызвать этот метод из didFinishLaunchingWithOptions
и didReceiveRemoteNotification
Вот моя реализация:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSDictionary *pushDictionary = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (pushDictionary) {
[self customPushHandler:pushDictionary];
}
return YES;
}
И:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))handler {
[self customPushHandler:userInfo];
}
И:
- (void) customPushHandler:(NSDictionary *)notification {
// Code to push ViewController
NSLog(@"Push Notification"); //Got it two times when Clicked in notification banner
}
Когда мое приложение запущено, ViewController однократно нажата. И когда я открываю свое приложение Из баннера уведомлений, тогда мой экран дважды нажат.
Я разместил NSLog в customPushHandler
, и я получил его один раз, когда приложение находится на переднем плане и два раза, когда я запускаю его из баннера уведомлений.
Что такое проблема в моем коде.?
См http://stackoverflow.com/questions/22085234/didreceiveremotenotification-fetchcompletionhandler-open-from-icon-vs-push-not#comment51407901_22085855 –