2017-06-12 3 views
1

j'ai un navigateur Android et j'ai la possibilité d'effacer le cache, le stockage, les cookies, etc.Comment effacer toutes les informations stockées dans WebView?

Le code ressemble à ceci:

webView.clearCache(true); 
webView.clearFormData(); 
webView.clearHistory(); 
webView.clearSslPreferences(); 
CookieManager.getInstance().removeAllCookies(null); 
CookieManager.getInstance().flush(); 

Et cela semble fonctionner sur tous mes tests mais quand Je vais sur google.com mes anciennes recherches sont toujours là. Qu'est-ce que je ne nettoie pas?

Merci.

+0

Je ne sais pas si elle est la même que 'removeAllCookies', mais pouvez-vous essayer' CookieManager.getInstance() removeSessionCookie (.);? –

+0

J'ai trouvé la solution 'WebStorage.getInstance(). DeleteAllData();' – casolorz

+0

@casolorz veuillez jeter un oeil à ma réponse – oop

Répondre

0

trouvé la solution:

WebStorage.getInstance().deleteAllData(); 
0

J'ai un dispositif accordé root-access et a constaté que l'appel WebStorage.getInstance().deleteAllData(); et des codes similaires ne voit pas clairement la cache créée par le WebView à applicationDatadir/app_webview.

aussi, que les codes provoque parfois des erreurs fatales comme A/libc: Send stop signal to pid:16145 in void debuggerd_signal_handler(int, siginfo_t*, void*)

Et il est (le cache) pas si petite taille.

Pour ce faire, vous pouvez utiliser ce code suivant extrait:

public static void clearWebViewCachesCustom(Context context) { 
    try { 
     String dataDir = mContext.getPackageManager().getPackageInfo(context.getPackageName(), 0).applicationInfo.dataDir; 
     new File(dataDir + "/app_webview/").delete(); 
    } catch (Exception e) { 
     if (!MainActivity.deBugTest) Crashlytics.logException(e); 
     e.printStackTrace(); 
     e.getSuppressed(); 
    } 
}