WKHTTPCookieStore Обработчик завершения getAllCookies не вызывается в некоторых версиях ОС - PullRequest
0 голосов
/ 08 апреля 2019

Наше приложение iOS считывает куки из WKHTTPCookieStore, чтобы вызвать веб-сервис инициализации.Если конкретный файл cookie, который мы ищем, отсутствует в CookieStore, он передаст пустое значение в веб-сервис и вернет соответствующий ответ.Поскольку это API-интерфейс инициализации, мы вызываем веб-сервис в обработчике завершения, как показано ниже, и блокируем пользовательский интерфейс, добавляя индикатор активности до тех пор, пока он не приведет к успеху или неудаче.

WKWebsiteDataStore.default().httpCookieStore.getAllCookies { (cookies) in
            callInitializationService(cookies)
        }

В нашем тестировании это работалохорошо во всех доступных устройствах тестирования в версиях ОС в диапазоне от iOS 11.3 до 12.2.

Текущая проблема заключается в странном поведении производственного приложения, когда индикатор активности вообще не отключается после установки.Мы обнаружили, что первопричиной является WKHTTPCookieStore.getAllCookies обработчик завершения, который никогда не вызывается, и, следовательно, он блокирует пользовательский интерфейс.Эта проблема в основном наблюдается в версиях ОС iOS 11.2.x, но она не уверена, влияет ли она и на другие версии ОС.Даже перезапуск приложения не решает проблему.

Кто-нибудь сталкивался с этой проблемой раньше?Любое разрешение / обходной путь, доступный, чтобы исправить это?

...