39

如何在 web 视图中启用 cookie?

我试着用

CookieManager.getInstance().setAcceptCookie(true);

就在调用 WebView.loadUrl() 之前,它不起作用,因为我从网站收到一个 HTML 页面错误,说需要启用 cookie。

cookieManager 如何知道启用 cookie 的 webview?

假设我在屏幕上有一个包含两个 webview 的活动,而我只希望其中一个 webview 启用 cookie,那么使用 CookieManager 怎么可能呢?

我觉得我错过了什么。我找不到像 webView.setCookieManager 或 Cookiemanager.setWebView(webview) 这样的方法。

4

2 回答 2

46

你应该考虑到

CookieManager.getInstance().setAcceptCookie(true);

不适用于棒棒糖(API21)及更高版本。您应该针对这种情况检查并使用适当的功能:

if (android.os.Build.VERSION.SDK_INT >= 21) {   
     CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true);
} else {
     CookieManager.getInstance().setAcceptCookie(true);
}
于 2017-12-18T12:36:53.347 回答
34

CookieManager.getInstance()是整个应用程序的CookieManager实例。因此,您可以为应用程序中的所有web 视图启用或禁用 cookie 。

通常,如果您的 webview 已经初始化,它应该可以工作:http: //developer.android.com/reference/android/webkit/CookieManager.html#getInstance()

也许你CookieManager.getInstance().setAcceptCookie(true);在初始化你的webview之前打电话,这就是问题所在?

于 2013-06-21T08:33:12.610 回答