Mam serwer, który wysyła do mojej aplikacji na Androida plik cookie sesji, który ma być używany do uwierzytelnionej komunikacji. Próbuję załadować WebView z adresem URL wskazującym na ten sam serwer i próbuję przekazać plik cookie sesji do uwierzytelnienia. Obserwuję, że działa sporadycznie, ale nie mam pojęcia dlaczego. Używam tego samego pliku cookie sesji, aby wykonywać inne wywołania na moim serwerze, a uwierzytelnianie nigdy nie kończy się niepowodzeniem. Obserwuję ten problem tylko podczas próby załadowania adresu URL w WebView i nie zdarza się to za każdym razem. Bardzo frustrujące.
Poniżej znajduje się kod, którego używam do tego. Każda pomoc będzie bardzo mile widziana.
String myUrl = ""http://mydomain.com/";
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
Cookie sessionCookie = getCookie();
if(sessionCookie != null){
String cookieString = sessionCookie.getName() +"="+sessionCookie.getValue()+"; domain="+sessionCookie.getDomain();
cookieManager.setCookie(myUrl, cookieString);
CookieSyncManager.getInstance().sync();
}
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
webView.loadUrl(myUrl);