我为Android开发了Cordova / Phonegap应用程序,该应用程序使用会话cookie登录到第三方网站。为此,我执行AJAX发布请求(使用jQuery),然后自动设置cookie。
但是,当我将智能手机更新为Android Lollipop 5.0并将应用程序库更新为API级别21时,Cookie停止工作。有什么变化?
在花了数小时在Internet上寻找可行的解决方案之后,我偶然发现了一篇很好地解释了该问题的文章,因此将其发布在这里,因为我认为这对其他Stack Overflow用户将很有用。
基本上,问题在于新的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-默认情况下不允许第三方Cookie /
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句