需要的数据不会立即写入WebView中的cookie。但是当我等待10-15秒时,一切都还可以。 为了解释这种情况,这个例子对我来说会很好:
我打开应用程序并登录。登录后,我立即关闭应用程序。然后在我再次打开应用程序后,它显示我要注销。但是如果我在1分钟后打开应用程序,它会再次显示为已登录。对我来说,最近会写入cookie。但我找不到解决方案。如果你知道的话,请帮帮我。
我使用过CookieManager类,但它也没有帮助。
CookieManager.getInstance().setAcceptCookie(true);
答案 0 :(得分:3)
我有类似的问题,我添加了以下代码并且工作了。
String myURL = "https://www.yourWebPage.com";
android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.acceptCookie();
cookieManager.setAcceptFileSchemeCookies(true);
cookieManager.getInstance().setAcceptCookie(true);
cookieManager.getCookie(myURL);
希望它有所帮助。
答案 1 :(得分:0)
我遇到了类似的问题,我所做的是在登录时获取cookie并将cookies
上设置的加载网址设置为webView
@Nullable
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
String resourceUrl = request.getUrl().toString();
Log.e(MainActivity.TAG, "the request url :" + resourceUrl);
CookieManager cookieManager1 = CookieManager.getInstance();
// get the resourceUrl that has session
if (resourceUrl.equals("the url has session")){
String Cookies = cookieManager1.getCookie(resourceUrl);
if (Cookies != null && Cookies.contains("sessionid")){
String[] cookiesList = Cookies.split(";");
cookieManager1.removeSessionCookies(null);
for (String c : cookiesList) {
cookieManager1.setCookie("the load url", c);
}
}
}
return super.shouldInterceptRequest(view, request);
}