From b62b6c7b35d1d647eb8b670be036c975738857c7 Mon Sep 17 00:00:00 2001 From: seven332 Date: Thu, 31 Mar 2016 13:19:50 +0800 Subject: [PATCH] Fix not found nativeRemoveAllCookie --- .../ehviewer/ui/scene/WebViewSignInScene.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/WebViewSignInScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/WebViewSignInScene.java index 1aff91ab4..d6e302c2e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/WebViewSignInScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/WebViewSignInScene.java @@ -18,12 +18,14 @@ package com.hippo.ehviewer.ui.scene; import android.annotation.SuppressLint; import android.content.Context; +import android.os.Build; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.CookieManager; +import android.webkit.CookieSyncManager; import android.webkit.WebView; import android.webkit.WebViewClient; @@ -63,7 +65,21 @@ public class WebViewSignInScene extends BaseScene { AssertUtils.assertNotNull(context); EhUtils.signOut(context); - CookieManager.getInstance().removeAllCookie(); + + // http://stackoverflow.com/questions/32284642/how-to-handle-an-uncatched-exception + CookieManager cookieManager = CookieManager.getInstance(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + cookieManager.flush(); + cookieManager.removeAllCookies(null); + cookieManager.removeSessionCookies(null); + } else { + CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(context); + cookieSyncManager.startSync(); + cookieManager.removeAllCookie(); + cookieManager.removeSessionCookie(); + cookieSyncManager.stopSync(); + } + mWebView = new WebView(context); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.setWebViewClient(new LoginWebViewClient());