我为 Android 开发了一款 Cordova/Phonegap 应用程序,它使用会话 Cookie 登录第三方网站。 为此,我使用 jQuery 进行 AJAX post 请求,然后 Cookie 会自动设置。
但是,当我将智能手机更新到 Android Lollipop 5.0 并将应用程序库更新到 API 级别 21 后,Cookie 停止工作了。发生了什么变化?
基本上,问题出在新的 Android 第三方 Cookie 策略(https://developer.android.com/about/versions/android-5.0-changes.html#BehaviorWebView),默认情况下会阻止它们。
解决办法是向主活动添加几行代码:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.init();
// Allow third party cookies for Android Lollipop
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
WebView webView = (WebView)super.appView;
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptThirdPartyCookies(webView,true);
}
super.loadUrl(Config.getStartUrl());
}
为了获取更多信息,我在这里放置了完整文章的链接:http://joashpereira.com/blog/2014/11/19/fix-to-cordovaphonegap-apps-targeting-android-5-lollipop-or-later-on-default-disallowing-third-party-cookies/
setAcceptThirdPartyCookies
以使其具有cookie功能,尽管我认为仅凭这一行代码无法实现该定制级别。也许您可以发布一个新问题? - josemmo