Я внедрил application:didReceiveRemoteNotification:fetchCompletionHandler:
в свой делегат приложения для ответа на push-уведомления.Метод удаленного уведомления, вызываемый дважды
Когда уведомление получено, когда приложение находится в фоновом режиме, этот метод вызывается немедленно, и я извлекаю новые данные и выполняю блок завершения, когда это делается. Все в соответствии с документацией. Однако, если я нажму уведомление о уведомлении, этот метод снова вызван, что приведет к другому сетевому вызову и обновлению пользовательского интерфейса. Я ожидал, что этот метод будет вызываться один раз для каждого push-уведомления, а не один раз при получении и снова в действии.
Как другие реализовали этот метод?
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
[self loadSomeResource:^(NSData *data,NSError *error){
if (error) {
completionHandler(UIBackgroundFetchResultFailed);
}
else if (data){
completionHandler(UIBackgroundFetchResultNewData);
}
else {
completionHandler(UIBackgroundFetchResultNoData);
}
}];
}
в вашем методе вы проверяете, работает ли приложение в активном состоянии или нет? – Ilario
Если бы я это сделал, то что я должен передать в завершение Handler во второй раз? – Alex
можете ли вы разместить свой код, пожалуйста? – Ilario