Javascript для удаления куки в веб-браузере Android - PullRequest
15 голосов
/ 08 декабря 2010

Что такое JavaScript для удаления куки в веб-браузере Android. Обычный метод установки даты истечения срока действия cookie на дату в прошлом не работает в веб-браузере Android.

Например, приведенный ниже код работает в настольных веб-браузерах и мобильных сафари, но не работает в веб-браузере Android.

document.cookie = 'cookiename=cookievalue; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/';

Ответы [ 4 ]

1 голос
/ 04 декабря 2013

, что работает для меня

document.cookie = yourCookieName + '=' + // NO value here 
    ';expires=Thu, 01-Jan-1970 00:00:01 GMT';

если используется путь и / или домен в установленное время, добавьте em

document.cookie = yourCookieName + '=' + // NO value here
    ';path=' + yourCookiePath +
    ';domain=' + yourCookieDomain +
    ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
1 голос
/ 03 декабря 2013

Я видел браузеры (на самом деле в телевизорах, но не уверен, какой именно), которые не принимали поле «expires =» (с абсолютной датой), но хорошо работали с «max-age =»(время в секундах).Поэтому, возможно, попробуйте удалить cookie по:

document.cookie = 'cookiename=; max-age=0; path=/';
1 голос
/ 04 декабря 2013

Вы пробовали также включить домен в строку настроек cookie? Я помню, что в некоторых случаях вам нужно было очень четко указать домен и путь, совпадающие (или совместимые с) с текущим местоположением документа, чтобы удалить cookie:

document.cookie='cookiename=cookievalue; path=/; domain=current-domain; expires=Thu, 01 Jan 1970 00:00:01 GMT';
0 голосов
/ 28 ноября 2013

Хотя это обходной способ, создайте и создайте экземпляр JavascriptInterface, который будет вызываться с веб-страницы Javascript. Установите этот интерфейс Javascript для вашего Webview, используя

webSettings.setJavascriptEnabled(true);

и

webView.addJavascriptInterface(new JavaScriptInterfaceImplementation(), INTERFACE_NAME);

На вашей веб-странице вы затем вызываете

javascript:INTERFACE_NAME.yourSessionClearingMethod();

, который должен содержать

CookieManager cookieManager = CookieManager.getInstance();        
cookieManager.removeAllCookie(); // or cookieManager.removeSessionCookie();

для удаления указанных нежелательных файлов cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...