2013-11-28 3 views
0

Мой вопрос очень похож на Cookies & Webview - CookieSyncManager in Android!, но мне действительно нужно получить отрегулированное время SystemClock.sleep() или другой способ получить ответную реакцию setCookie. Не работал с 500 мс, но работал с 5000 мс, поэтому он не очень надежный. Любой способ петлевого сна в onPageStarted, где я звоню sync для CookieManager после setCookie?CookieSyncManager sync асинхронное поведение

Моя среда получает значение Cookie с другого сервера, поэтому здесь нет файлов cookie сеансов.

Спасибо.

UPDATE:

Похоже, обработка Cookie не работает вообще. У меня следующий веб-поток:

  1. Set Cookie и загрузить URL
  2. Сервер обрабатывает, что Cookie в порядке, так что это добавляет еще печенье, чтобы указать нам сеанс
  3. WebView еще загружает страницу не показывая сессии
  4. я начинаю свой WebView снова, и теперь getCookie показывает страницу сессии Cookie и загружает правильно

ответ

0

Я закончил тем, что назвали setCookie, прежде чем я даже WebView присутствующую в приложении (я получаю значение Cookie с другого сервера), а также добавление в WebViewClientonPageStarted и onPageFinished печенье синхронизации, это, кажется, работает, и я не пришлось вызывать задержки сна.

0

Перед вызовом webview.loadUrl (URL), добавить время цикла в DETEC т. е. введен ли файл cookie url. Если cookie не был установлен асинхронно, засыпайте некоторое время. Надеюсь, поможет.

while (!CookieManager.getInstance().hasCookies() 
    || CookieManager.getInstance().getCookie(url)==null){ 
     SystemClock.sleep(TIME_WAITING_FOR_COOKIE_SYNC); 
    } 
webview.loadUrl(url); 
+0

У CookieManager здесь могут быть Cookies, но не правильное Cookie, поэтому я бы удалил checkCookies и вместо этого выполнил только getCookie (url) и подтвердил результат, чтобы он не был пустым или пустым. – Niko

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