Хранение и использование Cookie в WebView - PullRequest
0 голосов
/ 26 июня 2018

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

Я не слишком уверен, что мой код делает в настоящее время, поскольку я следовал за примерами.

@Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            ProgressBar progressBar = (ProgressBar) 
findViewById(R.id.progress_bar);
            progressBar.setIndeterminate(true);
            progressBar.setVisibility(View.VISIBLE);
            super.onPageStarted(view, url, favicon);
            String cookieStr = CookieManager.getInstance().getCookie(url);
            try {
                storeCookies(url, cookieStr);
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }


        }

        private void storeCookies(String url, String cookieString) throws URISyntaxException {
            if (cookieString !=null &&  !cookieString.isEmpty()) {
                URI uri = new URI(url);
                List<HttpCookie> cookies = HttpCookie.parse(cookieString);
                for (HttpCookie cookie : cookies) {
                    cookieStore = new CookieStore() {
                        @Override
                        public void add(URI uri, HttpCookie cookie) {
                            cookieStore.add(uri, cookie);
                        }


                        @Override
                        public List<HttpCookie> get(URI uri) {
                            return null;
                        }

                        @Override
                        public List<HttpCookie> getCookies() {
                            return null;
                        }

                        @Override
                        public List<URI> getURIs() {
                            return null;
                        }

                        @Override
                        public boolean remove(URI uri, HttpCookie cookie) {
                            return false;
                        }

                        @Override
                        public boolean removeAll() {
                            return false;
                        }
                    };

                }
            }
        }

        public void onPageFinished(WebView view, String url) {
            ProgressBar progressBar = (ProgressBar)findViewById(R.id.progress_bar);
            progressBar.setVisibility(View.GONE);
            setURL(url);

        }
    });
}

1 Ответ

0 голосов
/ 26 июня 2018

Если вы хотите установить файлы cookie для сайта, следуйте этому коду.

Котлин:

val cookieManager = CookieManager.getInstance()
cookieManager.setAcceptCookie(true)
cookieManager.setCookie("YOUR_WEBSITE_URL", "key=value")
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
   val cookieSyncManager = CookieSyncManager.createInstance(this)
   cookieSyncManager.sync()
}

Java

CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.setCookie("YOUR_WEBSITE_URL", "key=value");
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
   CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(this);
   cookieSyncManager.sync();
}

Замените YOUR_WEBSITE_URL на URL вашего сайта и ключ = значение в паре со значениями. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...