0

У меня есть встроенная branch.io (https://branch.io/) в моем приложении для глубокой ссылки. Здесь ответ, который я получаю в обработчике ветки, имеет небольшую задержку. Как только я получаю ответ, я делаю некоторую другую обработку, а затем решаю, следует ли перейти к первому экрану или ко второму экрану.Как задержать исчезновение заставки и параллельно запустить веб-сервис в фоновом режиме в объекте iOS C?

Проблема еще до получения ответвления ветви, отображается первый экран. Я хочу отложить заставку на некоторое время (что не так хорошо, как говорят большинство людей, но у меня нет возможности). Я ссылался на различные ссылки, How can I display a splash screen for longer on an iPhone?, где они предлагают добавить всплеск. Но это не работает. Я не знаю, по какой причине. Я также использовал [NSThread sleepForTimeInterval:6.0]; Но это блокирует основную нить. Я также использовал GCD, который не помог.

В didFinishLaunchingWithOptions, это то, что я закодирован,

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, NULL), ^{ 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      //get branch response 
     }); 

    }); 

Но первый экран появляется до получения ответа от branch.io. Просьба помочь ... Это серьезная проблема в моем приложении, без которой я не могу ничего протестировать. Пожалуйста, помогите мне ... Дайте мне знать, если я не понял себя.

ответ

2

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

0

Вы можете запустить webservice в основной теме в didFinishLaunchingWithOptions. Заставка будет зависеть, пока служба не закончится. После этого вы можете выбрать с экрана будет нажата.

Помните, что в случае отказа API.

+0

Alex from Branch.io здесь: это должно работать. В качестве побочного примечания вызов API фактически обрабатывается через наш SDK, который гарантированно возвращает значение в каждой ситуации (даже если сеть отсутствует или обратный вызов API иначе не работает). –

+0

OK, понял! Подождите, пока блок завершения выборки веб-службы, вызовите '[self.window makeKeyAndVisible]' – Proton