CookieSyncManager现已弃用,我可以使用哪些内容?

问题描述 投票:17回答:2

我在我的应用程序中使用cookie在所有浏览器中都能正常工作,但在android设备中,cookie的设置速度并不像我想要的那么快,保存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);
}
android cookies webview synchronize
2个回答
16
投票

在棒棒糖及其他方面,CookieManager单例本身可以正常工作。 (请参阅链接 - http://developer.android.com/reference/android/webkit/CookieManager.html)但是,在Lollipop之前,它还需要使用CookieSyncManager中的其他静态方法。在WebView上设置cookie时,以下代码适用于所有Android版本 -

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

0
投票

只需启用javascript和Dom存储即可。这有助于我在我的webview android应用程序中记住我的登录详细信息。我没有使用任何CookieManager但启用此功能对我而言。

 webView.getSettings().setJavaScriptEnabled(true);
 webView.getSettings().setDomStorageEnabled(true);
© www.soinside.com 2019 - 2024. All rights reserved.