在Android中退出应用程序后如何在WebView中维护会话?

问题描述

我目前是Android开发的新手,但我正在尝试创建一个简单的android应用程序,以打开我的网站,并允许您在WebView中登录。但是,我意识到当您退出该应用程序并终止其过程并重新启动该应用程序时,它会要求您重新登录而不是保持登录状态。我不确定如何解决该问题。我已经研究过CookieManager的实现,但是,我无法使其正常工作。你能帮我看看我在做什么错吗?

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myWebView = (WebView)findViewById(R.id.webView);
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        cookieManager.acceptCookie();
        String cookie = CookieManager.getInstance().getCookie("myWebsite");
        myWebView.loadUrl("myWebsite");
        myWebView.setWebViewClient(new WebViewClient());
    }

解决方法

我遇到了同样的问题。

尝试像这样设置 WebviewSettings

webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);

并将 cookie 从内存数据库刷新到持久内存。

CookieManager.getInstance().flush()

刷新后,即使在完整的应用程序重新启动后,cookie 也应该存在。

使用以下方式访问 Cookie:

CookieManager.getInstance().getCookie(yourUrlString)