如何从 Web 视图中删除缓存



我有recyclerView,在每个项目中,我已经在webView中取代了facebook。我登录了Facebook网络视图的一个项目(位置1(。并且,所有其他项目(位置1,2,3..(将自动记录在同一个fb帐户中。但是,我想在不同的项目中登录不同的fb帐户。

这是我的活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
webView = findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSavePassword(true);
code = getIntent().getStringExtra(MainActivity.FB);
assert code != null;
switch (code) {
case "fb1":
webView.loadUrl("https://www.facebook.com");
break;
case "fb2":
webView.clearCache(true);
webView.loadUrl("https://www.facebook.com");
break;
case "fb3":
webView.loadUrl("https://www.facebook.com");
break;
}
}

我试图将webView.clearCache(true);添加到一个,但它也不起作用。一旦不同的Facebook记录在不同的项目中,我不希望用户再次输入登录详细信息。你能帮帮我吗?

我不想清除缓存,但我想断开不同列表的 Web 视图之间的链接。我的意思是,如果我在一个网络视图中登录一个用户,则所有网络视图都显示相同的用户。而且,如果我使用clear cache用户必须一次又一次地输入登录详细信息。

你可以试试这种方式。希望它应该有效。

CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.removeAllCookies(new ValueCallback<Boolean>() {

@Override
public void onReceiveValue(Boolean aBoolean) {
Log.d(TAG, "Cookie removed: " + aBoolean);
}
});
}
else {
cookieManager.removeAllCookie()
}
webView.clearCache(true);
webView.clearFormData();
webView.clearHistory();

最新更新