CookieSyncManager теперь устарел, что я могу использовать вместо этого?

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

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

    webview = new WebView(this);
    webview.getSettings().setJavaScriptEnabled(true); // enable javascript

    CookieManager.setAcceptFileSchemeCookies(true);
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    cookieManager.acceptCookie();
    String cookie = CookieManager.getInstance().getCookie("mylink");

    final Activity activity = this;

    webview.setWebViewClient(new WebViewClient() {
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
        }
    });
    webview.loadUrl("mylink");

    setContentView(webview);
}

Ответы

Ответ 1

В Lollipop и за его пределами, singleton CookieManager работает отлично. (Refer Link - http://developer.android.com/reference/android/webkit/CookieManager.html) однако перед Lollipop также потребовалось использование дополнительного статического метода из CookieSyncManager. Код ниже работает для меня во всех версиях Android при настройке файлов cookie на WebView -

CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
    CookieSyncManager.createInstance(this);
}
cookieManager.setAcceptCookie(true);

Ответ 2

Просто включите JavaScript и Dom Storage. это помогает мне запомнить мои данные для входа в мое приложение для просмотра веб-приложений для Android. Я не использовал CookieManager, но включил это.

 webView.getSettings().setJavaScriptEnabled(true);
 webView.getSettings().setDomStorageEnabled(true);