Я загружаю веб-сайт в Webview, который использует некоторые куки для хранения сессии.Я написал следующие строки, чтобы принимать куки
CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
CookieManager.getInstance().setAcceptCookie(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
CookieManager.setAcceptFileSchemeCookies(true);
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
}
webView.loadUrl("https://www.irctc.co.in/nget/train-search");
На одном этапе (после оплаты через платежный шлюз) вызывается метод shouldOverrideUrlLoading
, после чего он должен попасть на страницу успеха транзакции, но продолжает работатьна страницу входа.Это мой метод:
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.d(TAG, "The URL is loaded in webview itself");
return false;
}
Используя Chrome Developer Tools, я вижу следующие файлы cookie для веб-сайта
Когда я вызываю метод CookieManager.getInstance().getCookie(url)
, я могуобратите внимание, что файлы cookie JESESSIONID и SLB_Cookie присутствуют в веб-просмотре, но не уверены в том, что Локальное хранилище cookie.Кроме того, если я удаляю файл cookie Local Storage в Chrome, я получаю ту же самую страницу (страницу входа в систему) вместо страницы успеха транзакции, как WebView.Поэтому я думаю, что если каким-либо образом я проверю, присутствует ли файл cookie локального хранилища в веб-просмотре или нет, и если нет, то, если я добавлю его, моя работа будет выполнена.Но я не могу выполнить ни одну из этих задач.