как запустить фоновый процесс на iOS с использованием частных API для синхронизации сообщений электронной почты без взлома телефона

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

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


person shatthi    schedule 17.08.2012    source источник


Ответы (3)


Если это корпоративное приложение, и вы не отправляете его в Apple, я бы подумал, что ваше приложение идентифицирует себя как приложение VOIP. Затем вы можете установить keepAliveTimer и получать периодическую обработку в фоновом режиме, чтобы делать то, что вам нужно.

person onnoweb    schedule 17.08.2012

Я поделюсь ответом на свой вопрос, так как это может помочь другим

Шаги:

1: Добавьте ключ требуемых фоновых режимов в свой application-info.plist и присвойте значение, поскольку приложение предоставляет своему элементу услуги передачи голоса по IP.

2: В файле appdelegate.m реализуйте метод applicationDidEnterBackground:, как показано ниже во фрагменте кода.

static int counter;
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    //Minimun keepAliveTimeout is 600 seconds
    [[UIApplication sharedApplication] setKeepAliveTimeout:605 handler:^{ 
        //do your task
        counter ++;
        NSLog(@"Counter # %d", counter);
    }];
}

Вот, например, я печатаю переменную счетчика в заданном временном интервале. Ниже приводится сообщение журнала вывода:

2012-08-27 14:06:09.216 BackgroundApplicationForVOIP[1129:207] Counter # 1
2012-08-27 14:16:14.218 BackgroundApplicationForVOIP[1129:207] Counter # 2
2012-08-27 14:26:19.219 BackgroundApplicationForVOIP[1129:207] Counter # 3
2012-08-27 14:36:24.220 BackgroundApplicationForVOIP[1129:207] Counter # 4
2012-08-27 14:46:29.221 BackgroundApplicationForVOIP[1129:207] Counter # 5
2012-08-27 14:54:21.000 BackgroundApplicationForVOIP[1129:207] Counter # 6
2012-08-27 15:19:48.099 BackgroundApplicationForVOIP[1129:207] Counter # 7
2012-08-27 15:26:03.201 BackgroundApplicationForVOIP[1129:207] Counter # 8
2012-08-27 15:39:50.167 BackgroundApplicationForVOIP[1129:207] Counter # 9
2012-08-27 16:07:28.112 BackgroundApplicationForVOIP[1129:207] Counter # 10
2012-08-27 16:13:43.217 BackgroundApplicationForVOIP[1129:207] Counter # 11
2012-08-27 16:23:48.218 BackgroundApplicationForVOIP[1129:207] Counter # 12
2012-08-27 16:33:53.219 BackgroundApplicationForVOIP[1129:207] Counter # 13
2012-08-27 16:43:58.220 BackgroundApplicationForVOIP[1129:207] Counter # 14
2012-08-27 16:54:03.221 BackgroundApplicationForVOIP[1129:207] Counter # 15
person shatthi    schedule 27.08.2012

Если вы хотите работать непрерывно, еще одна идея - включить «аудио» в требуемых фоновых режимах в Info.plist и продолжать зацикливать беззвучный mp3, пока вы не захотите продолжить работу.

person Karthik    schedule 25.11.2012