web-dev-qa-db-fra.com

Comment activer les cookies dans Android webview?

comment activer les cookies dans une vue Web?

j'ai essayé d'utiliser

CookieManager.getInstance().setAcceptCookie(true);

juste avant d'appeler WebView.loadUrl () et cela ne fonctionne pas car j'obtiens une erreur de page html d'un site Web disant que les cookies doivent être activés.

Ce que je ne comprends pas, c'est comment cookieManager sait-il quelle vue Web activer les cookies?

dire si j'avais une activité avec deux vues Web à l'écran et que je ne voulais qu'une de ces vues Web pour activer les cookies, comment est-ce possible en utilisant un CookieManager?

j'ai l'impression de manquer quelque chose? je n'ai pas pu trouver une méthode comme webView.setCookieManager ou Cookiemanager.setWebView (webview)

Merci

28
jonney

CookieManager.getInstance() est l'instance CookieManager pour l'ensemble de votre application. Par conséquent, vous activez ou désactivez les cookies pour toutes les vues Web dans votre application.

Normalement, cela devrait fonctionner si votre vue Web est déjà initialisée: http://developer.Android.com/reference/Android/webkit/CookieManager.html#getInstance ()

Peut-être que vous appelez CookieManager.getInstance().setAcceptCookie(true); avant d'initialiser votre vue Web et c'est le problème?

31
Integrating Stuff

Vous devriez considérer que

CookieManager.getInstance().setAcceptCookie(true);

ne fonctionne pas à partir de Lollipop (API21) et supérieur. Vous devez vérifier et utiliser la fonction appropriée pour ce cas:

if (Android.os.Build.VERSION.SDK_INT >= 21) {   
     CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true);
} else {
     CookieManager.getInstance().setAcceptCookie(true);
}
25
Misha Akopov