【问题标题】:how to remove cache from webView如何从 webView 中删除缓存
【发布时间】:2020-06-23 15:13:08
【问题描述】:

我有 recyclerView 并且在每个项目中我都在 webView 中取代了 facebook。我通过 facebook 登录了 webview 的其中一项(位置 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 登录了不同的项目,我不希望用户再次输入登录详细信息。你能帮帮我吗?

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

【问题讨论】:

  • 先尝试寻找“webview cookie”
  • @yyp 怎么样?你能解释一下吗?
  • 每个项目使用不同的WebView怎么样?
  • @yyp 我试过了,我没用
  • 我认为不可能。就像 google chorme 一样,您无法保存许多用户的 facebook 帐户 sesson。您必须清除每个帐户的 sesson 缓存。另一种解决方案,但我还没有尝试过,您应该研究在 webview 中保存 facebook sesson 的问题。全部清除并由您想要的用户加载

标签: android facebook android-studio android-webview


【解决方案1】:

你可以试试这个方法。希望它应该工作。

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();

【讨论】:

  • 一旦不同的facebook登录不同的项目,我不希望用户再次输入登录详细信息。
  • @madan 如果您不想让用户再次输入登录详细信息,那么如何确保其安全。如何首先制作登录详细信息?
  • @cantona_7 我的意思是,假设我的 recyclerView 中有 5 个项目,我想在这 5 个项目中加载 5 个不同的 Facebook 帐户。这是我个人使用的。
  • @cantona_7 我不希望缓存被清除,因为如果我这样做了,我应该在打开 facebook 时一次又一次地输入登录详细信息。
猜你喜欢
  • 2014-05-27
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 2012-05-28
  • 2015-01-17
  • 1970-01-01
  • 2016-04-16
  • 2023-03-25
相关资源
最近更新 更多