Webview不能接受Cookie [英] Webview cannot accept cookies

查看:122
本文介绍了Webview不能接受Cookie的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个基于WebView的Android应用程序,该应用程序使用户可以登录到移动运营商.当我运行该应用程序时,WebView会打开网站,但会收到一条消息,表明WebView不允许cookie.我尝试了在这里找到的各种代码,但是没有一个起作用.谁能帮我?这是我正在使用的代码:

I'm creating a WebView based Android app that enables the user to login onto a mobile operator. When I run the app the WebView opens the website but I get a message that the WebView doesn't allow cookies. I've tried various codes that I found here but none of them worked. Can anyone help me? Here is the code I'm using:

//in oncreate
final CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(this);
final CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
String[] cookies = getCookie("https://myaccount.ee.co.uk/login-dispatch/?fa=register");
for (String cookie : cookies) {
    cookieManager.setCookie("https://myaccount.ee.co.uk/login-dispatch/?fa=register", cookie);
}
cookieSyncManager.sync();
webView.loadUrl("https://myaccount.ee.co.uk/login-dispatch/?fa=register");

和getCookies方法:

and the getCookies method:

public String[] getCookie(String siteName) {
     CookieManager cookieManager = CookieManager.getInstance();
     String cookies = cookieManager.getCookie(siteName);
     String[] cookiesArray = cookies.split(";");
     return cookiesArray;
}

推荐答案

尝试覆盖shouldOverrideUrlLoading方法,以使WebView处理所有URL链接,而不在任何链接上启动新的浏览器.

Try to override the shouldOverrideUrlLoading method to make your WebView handle all URL links, and not start a new browser on any link.

webview.setWebViewClient(new WebViewClient() {  
          @Override  
          public boolean shouldOverrideUrlLoading(WebView view, String url)  
          {  
            return false;  
          }  
});   

webview.loadUrl(url);

如果这不起作用,您可以替换您的

If this doesn't work you can replace your

cookieManager.setAcceptCookie(true);

cookieManager.setAcceptThirdPartyCookies(true);

因为cookieManager.setAcceptCookie(true);在棒棒糖上不起作用.

because cookieManager.setAcceptCookie(true); doesn't work on Lollipop.

这篇关于Webview不能接受Cookie的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆