2015-09-17 3 views
0

Я нашел много вопросов здесь, в сообществе по одному и тому же вопросу, но все они очень старые. Поэтому я хотел бы знать, как запустить запланированный метод. Я ищу его для iOS 7.1 +.Запланированные задания в iOS

Ситуация

Каждый день я должен отправить расположение к WebService два раза в день. Это представление должно состояться в 12:00 и 18:00. Я использовал метод startMonitoringSignificantLocationChanges, но это мне не помогло, потому что у него нет точного времени для запуска (как следует из названия, только значительного изменения местоположения). Эта функция должна быть выполнена автоматически без участия пользователя с iphone, потому что это «автоматическая регистрация». Он должен выполняться с приложением в любом состоянии (работает или в фоновом режиме или завершается).

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

Мой вопрос:

Там, как сделать это в самом последних версиях прошивки (7.1 или более)? как это сделать?

PS: Swift или Objective-C - если возможно, в Swift, но если вы можете помочь с Objective-C, приветствуются, потому что главный вопрос заключается в том, нужно ли это делать и как делать.

+2

Это должно работать с бесшумными push-сообщениями. Без сервера вы теряетесь. – dasdom

+0

@dasdom. Но когда я получаю удаленное уведомление, мое приложение не запускается. И я должен быть прозрачным для пользователя без какого-либо взаимодействия. – Gian

+0

Когда вы получаете тихое push-сообщение, приложение запускается и yo u может делать вещи в течение короткого периода времени. – dasdom

ответ

0

Dasdom is right - iOS не позволяет планировать фоновое задание. Вы можете запросить запуск приложения в фоновом режиме, но не можете управлять , когда ваш код действительно будет запущен (согласно руководству Apple, «Когда появляется хорошая возможность, система просыпается или запускает ваше приложение в фоновом режиме ...»

Ваш лучший вариант - предоставить вашему сервису сообщение об уведомлении APNS в ваше приложение и без уведомления обрабатывать уведомление, разместив его на своем веб-сервисе.

+0

Спасибо. Но когда я получаю удаленное уведомление, мое приложение не запускается. Только если пользователь прикасается к уведомлению. – Gian

+0

Ваше приложение не запускается, но приложение: didReceiveRemoteNotification: fetchCompletionHandler: метод * * вызывается, даже если вы работаете в фоновом режиме. См. Документацию на Apple: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/index.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:didReceiveRemoteNotification:fetchCompletionHandler: –

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