J'ai un serveur qui envoie à mon application Android un cookie de session à utiliser pour une communication authentifiée. J'essaye de charger une WebView avec une URL pointant vers ce même serveur et j'essaye de passer le cookie de session pour l'authentification. J'observe que cela fonctionne par intermittence mais je n'ai aucune idée pourquoi. J'utilise le même cookie de session pour effectuer d'autres appels sur mon serveur et ceux-ci n'échouent jamais à l'authentification. Je n'observe ce problème qu'en essayant de charger une URL dans une WebView, et cela ne se produit pas à chaque fois. Très frustrant.
Voici le code que j'utilise pour ce faire. Toute aide sera fortement appréciée.
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);