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);