为Android WebView启用第三方cookie
我一直面临一些旧API版本的问题。某些网站的某些链接没有响应,因为它们具有必须为webview启用第三方cookie的先决条件。我对这个主题进行了一些搜索,发现了一个API: CookieManager.getInstance().acceptThirdPartyCookies() 它修复了我的问题并启用了第三方cookie,但最小API级别为21。 我需要支持低至15的API级别。我们有没有办法在较低的API中执行相同的操作为Android WebView启用第三方cookie,android,cookies,webview,android-webview,Android,Cookies,Webview,Android Webview,我一直面临一些旧API版本的问题。某些网站的某些链接没有响应,因为它们具有必须为webview启用第三方cookie的先决条件。我对这个主题进行了一些搜索,发现了一个API: CookieManager.getInstance().acceptThirdPartyCookies() 它修复了我的问题并启用了第三方cookie,但最小API级别为21。 我需要支持低至15的API级别。我们有没有办法在较低的API中执行相同的操作 [请注意,API:CookieManager.getInstance
[请注意,API:CookieManager.getInstance().setAcceptCookie(true);用于启用Cookie而不是第三方Cookie,因此它不起作用…:-(]
CookieManager.getInstance()
是整个应用程序的CookieManager实例。因此,您可以为应用程序中的所有Web视图启用或禁用Cookie
也许您可以调用CookieManager.getInstance().setAcceptCookie(true);
或
在创建Web视图或访问CookieManager之前,请尝试此方法:
请阅读此方法的文档!我发现一个答案,希望与大家分享。在低于棒棒糖(包括棒棒糖)的版本中,默认启用第三方cookie。在高于棒棒糖的API级别中,我们需要显式设置第三方cookie,因此我在代码中添加了以下if-else(最小API 16): 但是,它显示编译时错误。它不会停止构建,在需要强制设置第三方Cookie的更高API级别中,此代码起作用。CookieManager.getInstance().setAcceptCookie(true);仅启用Cookie而不启用第三方Cookie。setAcceptThirdPartyCookies()至少需要API 21(棒棒糖),所以应该是:if(Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.LOLLIPOP)
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
Log.d(AppConstants.TAG,"SDk version above android L so forcibaly enabling ThirdPartyCookies");
CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView,true);
}