Проблема с выходом из Android Webview

В моем приложении веб-просмотра, когда я запускаю приложение в первый раз и выхожу из сеанса пользователя, закрываю приложение, а затем, когда я снова открываю приложение, вместо того, чтобы запрашивать учетные данные пользователя, я обнаруживаю, что уже вошел в систему. Я попытался очистить файлы cookie, но затем он всегда требует входа в систему при каждом перезапуске. Я хочу, чтобы он запрашивал вход только тогда, когда пользователь выходит из приложения.

Пожалуйста помоги!!

Вот фрагмент кода:

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    frameLayout = (FrameLayout) findViewById(R.id.framelayout);
    bar = (ProgressBar) findViewById(R.id.progressBar2);
    bar.setMax(100);
    webview = (WebView) findViewById(R.id.mywebview);
    webview.clearCache(true);
    webview.clearHistory();
    WebSettings mWebSettings = webview.getSettings();
    mWebSettings.setSaveFormData(false);




    swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
    swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            LoadWeb();
        }
    });

   LoadWeb();

}

public  void LoadWeb(){

    webview = (WebView) findViewById(R.id.mywebview);

    webview.setWebViewClient(new HelpClient());




    webview.setWebChromeClient(new WebChromeClient(){




        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            frameLayout.setVisibility(View.VISIBLE);
            bar.setProgress(newProgress);

            setTitle("Loading....");

            if (newProgress == 100){
                frameLayout.setVisibility(View.GONE);
                setTitle(view.getTitle());
            }
            super.onProgressChanged(view, newProgress);
        }
    });
    webview.getSettings().setJavaScriptEnabled(true);

    webview.setVerticalScrollBarEnabled(false);
    webview.loadUrl(WebAddress);
    webview.loadUrl("javascript:window.location.reload(true)");

    swipe.setRefreshing(false);
    bar.setProgress(0);


}


private class HelpClient extends WebViewClient{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        frameLayout.setVisibility(view.VISIBLE);
        return true;
    }



    @Override
    public void onPageFinished(WebView view, String url) {

        swipe.setRefreshing(false);
    }


    @Override
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {

        try {
            webview.stopLoading();
        } catch (Exception e) {

        }

        if (webview.canGoBack()) {
            webview.goBack();
        }

        webview.loadUrl("about:blank");
        AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
        alertDialog.setTitle("Error");
        alertDialog.setMessage("Check your internet connection and try again.");
        alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Try Again", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                finish();
                startActivity(getIntent());
            }
        });

        alertDialog.show();

        super.onReceivedError(view, request, error);

    }


}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK){
        if (webview.canGoBack()){
            webview.goBack();
            return true;
        }
    }


    return super.onKeyDown(keyCode, event);
}

person Anand    schedule 11.02.2018    source источник
comment
Вы пробовали это? stackoverflow.com/a/31338188/9311972   -  person Paul Chu    schedule 22.02.2018
comment
@PaulChu да, я пробовал. Не работает   -  person Anand    schedule 23.02.2018


Ответы (1)


Запустите код ниже до loadUrl()

WebStorage webStorage = WebStorage.getInstance();
webStorage.deleteAllData();
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();

Я тестирую его с помощью учетной записи Gmail

person Paul Chu    schedule 23.02.2018