gpt4 book ai didi

java - 旧 api 上的 Android WebView 同步 cookie

转载 作者:行者123 更新时间:2023-11-30 08:48:23 27 4
gpt4 key购买 nike

我正在使用 CookieSyncManager 来同步 cookie。我遵循了 Android Documentation 中的指南.在 oncreate 中创建实例,在 onPause 中停止同步,在 onResume 中恢复。另外我开火

CookieSyncManager.getInstance().sync();

在 onPageFinished 结束时。

由于 API21 我收到了弃用警告,根据 Android 文档,我们应该使用

CookieManager.getInstance().flush();

现在才触发同步。

我已经试过了

if (android.os.Build.VERSION.SDK_INT >= 21) CookieManager.getInstance().flush();
else CookieSyncManager.getInstance().sync();

但它给了我一个最低 API15 的错误。

我不喜欢忽略弃用的想法,但如何处理 API15?

编辑:

来自评论(不确定我是否理解正确):

@Override
public void onPageFinished(WebView view, String url) {

if (android.os.Build.VERSION.SDK_INT >= 21) flushCookies();
else syncCookies();
}

@TargetApi(21) //add this
private void flushCookies() {

CookieManager.getInstance().flush();
}

private void syncCookies() {

CookieSyncManager.getInstance().sync();
}

解决了我以为是错误的 lint 提示。

最佳答案

实际上你可以通过不同的方式来做到这一点:

@SuppressWarnings("deprecation")
public static void loadCookies() {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
CookieManager.getInstance().flush();
} else {
CookieSyncManager.getInstance().sync();
}
}

在您的 onPageFinished(WebView view, String url) 中调用此方法这段代码看起来很干净,您不会看到您的方法看起来像是已弃用。

关于java - 旧 api 上的 Android WebView 同步 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com