首页 > 解决方案 > 在 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());
    }

标签: androidandroid-webviewandroid-cookiemanager

解决方案


我遇到了同样的麻烦。

尝试这样设置WebviewSettings

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

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

CookieManager.getInstance().flush()

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

使用以下方式访问 Cookie:

CookieManager.getInstance().getCookie(yourUrlString)

推荐阅读