gpt4 book ai didi

android - Webview 不能接受 cookie

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:31 25 4
gpt4 key购买 nike

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

//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 方法:

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

最佳答案

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

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

webview.loadUrl(url);

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

cookieManager.setAcceptCookie(true);

cookieManager.setAcceptThirdPartyCookies(true);

因为 cookieManager.setAcceptCookie(true); 在 Lollipop 上不起作用。

关于android - Webview 不能接受 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33998688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com