Ответ 1
Вы можете получать тихие уведомления в фоновом режиме на iOS, но для отправки уведомлений вам понадобится сервер.
Для этого вы активируете фоновый режим Remote notifications
на вкладке "Целевые возможности":
Затем вы регистрируетесь для push-уведомлений в application:didFinishLaunchingWithOptions:
с помощью
UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeNone categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
В ожидании пользователя, позволяющего вашему приложению отправлять push-уведомления, вы получите токен устройства:
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;
Если что-то пойдет не так, обработчик отказа будет вызван:
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:
Вы отправляете deviceToken
на свой сервер и сообщаете ему отправлять молчаливое push-уведомление этому deviceToken
в локальное время устройства 8AM.
Это устройство будет иметь следующий метод делегирования приложения:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
и вы сможете выполнять обработку данных.
Легко!
Не забудьте вызвать обработчик завершения, когда закончите!