Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Android WebView启用第三方cookie_Android_Cookies_Webview_Android Webview - Fatal编程技术网

为Android WebView启用第三方cookie

为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版本的问题。某些网站的某些链接没有响应,因为它们具有必须为webview启用第三方cookie的先决条件。我对这个主题进行了一些搜索,发现了一个API:

CookieManager.getInstance().acceptThirdPartyCookies()

它修复了我的问题并启用了第三方cookie,但最小API级别为21。 我需要支持低至15的API级别。我们有没有办法在较低的API中执行相同的操作


[请注意,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);
    }