为Android WebView启用第三方Cookie

时间:2016-02-04 11:48:58

标签: android cookies webview android-webview

我一直面临着旧API版本的一些问题。某些网站的某些链接不响应,因为它们具有必须为webview启用第三方cookie的前提条件。我做了一些关于主题的搜索并找到了一个API:

CookieManager.getInstance()acceptThirdPartyCookies();

它修复了我的问题并启用了第三方Cookie,但Min API级别为21。 我需要支持低至15的较低API级别。我们是否可以在较低的API中执行相同的操作。

[请注意API:CookieManager.getInstance()。setAcceptCookie(true);用于启用cookie而不是第三方cookie,因此它不会起作用......: - (]

2 个答案:

答案 0 :(得分:3)

我发现一个答案想分享它。低于LOLLIPOP(包括LOLLIPOP)默认情况下启用第三方cookie。在比LOLLIPOP更高的API级别中,我们需要明确设置第三方cookie,因此我在代码中添加了以下if else(Min API 16):

    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);
    }

但是它显示编译时错误。它不会停止构建,并且在我们需要强制设置第三方cookie的更高API级别中,此代码可以解决问题。

答案 1 :(得分:0)

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

也许你打电话给CookieManager.getInstance().setAcceptCookie(true);

请在创建WebView或访问CookieManager之前尝试此方法:http://developer.android.com/reference/android/webkit/CookieManager.html#setAcceptFileSchemeCookies(boolean)

请阅读此方法的文档!