У меня есть приложение Cordova, которое записывает поездки пользователя. Он отлично работает в фоновом режиме, и я бы хотел, чтобы он был автоматически перезагружен, если он по какой-то причине убит (пользователь удаляет его, перезагружает телефон и т. Д.).Запуск приложения Кордовы iOS, если имеется UIApplicationLaunchOptionsLocationKey
Я контролирую регион, и приложение частично перезагружается, когда пользователь входит/выходит из него. «Частично» означает, что приложение работает только в фоновом режиме - Кордова загружает плагины моего приложения, но никогда не загружает WebView.
Для этого частичного перезапуска я слушаю UIApplicationDidFinishLaunchingNotification с помощью UIApplicationLaunchOptionsLocationKey из моего модуля pluginInitialize моего плагина и служб начального местоположения сразу же, чтобы оставаться в рабочем состоянии.
Почему не загружается WebView? Есть ли что-то, что мне нужно сделать, чтобы запустить следующий этап инициализации при запуске iOS?
EDIT 2016/3/7
Я сделал некоторые исследования и отладки. По-видимому, iOS запускает мое приложение в фоновом режиме; вот что я получаю, когда запускается автоматически таким образом против ручного запуска, от лесозаготовительной линии:
NSLog(@"Launched in: bg:%d active:%d inactive:%d", state == UIApplicationStateBackground, state == UIApplicationStateActive, state == UIApplicationStateInactive);
Launched in: bg:1 active:0 inactive:0
Launched in: bg:0 active:0 inactive:1
Я проверил этот код был быть достигнут в обоих случаях (от v.3.9.2 Cordova КСН (Кордова v.5.4.1) CDVViewController:
NSURLRequest* appReq = [NSURLRequest requestWithURL:appURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];
[self.webView loadRequest:appReq];
Я вижу эту отделку нагрузки в ручном случае, но не автозапуск случай, с логарифмической строкой:
Finished load of: file:///var/mobile/Containers/Bundle/Application/[device id]/[app name].app/www/index.html
Почему бы эта нагрузка сбой при автозапуске?