Ho un server che invia alla mia app Android un cookie di sessione da utilizzare per la comunicazione autenticata. Sto cercando di caricare un WebView con un URL che punta a quello stesso server e sto cercando di passare il cookie di sessione per l'autenticazione. Sto osservando che funziona a intermittenza ma non ho idea del perché. Uso lo stesso cookie di sessione per effettuare altre chiamate sul mio server e queste non falliscono mai l'autenticazione. Osservo questo problema solo quando provo a caricare un URL in un WebView e non si verifica ogni volta. Molto frustrante.
Di seguito è riportato il codice che sto usando per farlo. Qualsiasi aiuto sarà molto apprezzato.
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);