5

設定からできるようにアプリケーションデータをクリアしたい。facebook や twitter にログインしているときに、WebView のログイン情報をクリアする必要があります。これは、次のそれぞれに 1 回ログオンすると、同じデータが自動的に使用されるためです。

私はこれを試します: http://www.hrupin.com/2011/11/how-to-clear-user-data-in-your-android-application-programmatically

機能しませんでした。ログイン情報はまだブラウザにあります

アプリをリセットしてみます:

Intent i = getBaseContext().getPackageManager()
             .getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

また

@Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        view.clearCache(true);

        if(b){
            Log.d("WEBVIEW", "onFinisghed b true");
        Map<String, String> noCacheHeaders = new HashMap<String, String>(2);
        noCacheHeaders.put("Pragma", "no-cache");
        noCacheHeaders.put("Cache-Control", "no-cache");
        view.loadUrl(url, noCacheHeaders);
        b = false;
        }...

ほとんどのエントリは、リンクに記載されている最初の方法を参照していますが、私の場合はうまくいきません。

4

3 に答える 3

10

ブラウザの Cookie をクリアしてみてください。ログオン資格情報は多くの場合、ブラウザーの Cookie に保存されます。これは、への呼び出しによって削除できます。

CookieManager.getInstance().removeAllCookie();

アップデート:

CookieManager.getInstance()。removeAllCookie () は Android SDK 21 (Lollipop) で廃止され、CookieManager.getInstance() に置き換えられました。removeAllCookies(ValueCallback コールバック) . 2018 年 11 月現在、removeAllCookie() は指定どおりに動作します。また、新しいメソッドremoveAllCookies(ValueCallback callback)では、削除された Cookie について通知されたくない場合は、コールバック関数を null にすることができます。したがって、安全に使用できます

CookieManager.getInstance().removeAllCookies(null)

CookieManager.getInstance() の直接の代替として。Android SDK 21 以降のデバイスを対象とする場合のremoveAllCookie ()。

CookieManager のドキュメントはこちらです。

于 2013-07-24T22:43:40.980 に答える
0

WebView.clearCache(boolean)はどうですか?

于 2013-07-24T21:11:40.127 に答える