Bonjour,

Mon application remplace mon site internet (hormis le forum).
Elle possède un formulaire d'authentification. J'y récupère le numéro de session.

Une webview est présente pour pouvoir naviguer sur le forum du site. Afin d'éviter de devoir s'y reconnecter manuellement, je passe la session dans un cookie.
Cela fonctionne au premier abord, mais la session disparait d'elle-même au bout de quelques pages. Et il faut recharger l'activité de la webview (jusqu'à plusieurs fois) pour retrouver cette session.

J'ai du mal à comprendre pourquoi.
Merci d'avance pour votre aide.

Ci-dessous mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private class MyWebViewClient extends WebViewClient {
		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			//view.loadUrl(url);
			//return true;
			if (Uri.parse(url).getHost().equals("www.example.com")) {
				// This is my web site, so do not override; let my WebView load the page
				return false;
			}
			// Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
			Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
			startActivity(intent);
			return true;
		}
	}
 
		MyWebViewClient myClient = new MyWebViewClient();
		webview.setWebViewClient(myClient);
 
		String actionURL = "http://www.example.com/forum/";
 
		CookieSyncManager.createInstance(this);
		CookieManager cookieManager = CookieManager.getInstance();
		cookieManager.setAcceptCookie(true);
		cookieManager.removeSessionCookie();
		String cookieString = "PHPSESSID=" + sessionid + "; domain=www.example.com";
		cookieManager.setCookie(actionURL, cookieString);
		CookieSyncManager.getInstance().sync();
		webview.loadUrl(actionURL);