设置Android WebView中启用的Cookie
我正在尝试为Android webview设置Cookie功能,但它对我不起作用 这是我试过的设置Android WebView中启用的Cookie,android,cookies,webview,android-webview,Android,Cookies,Webview,Android Webview,我正在尝试为Android webview设置Cookie功能,但它对我不起作用 这是我试过的 CookieManager cookieManager = CookieManager.getInstance(); CookieSyncManager.createInstance(this); webView = (WebView) findViewById(R.id.webView); cookieManager.setAcceptCookie(true); cookieManager.a
CookieManager cookieManager = CookieManager.getInstance();
CookieSyncManager.createInstance(this);
webView = (WebView) findViewById(R.id.webView);
cookieManager.setAcceptCookie(true);
cookieManager.acceptCookie();
CookieSyncManager.getInstance().startSync();
WebSettings settings = webView.getSettings();
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(true);
settings.setDefaultZoom(ZoomDensity.FAR);
settings.setJavaScriptEnabled(true);
settings.setBuiltInZoomControls(true);
settings.setRenderPriority(RenderPriority.HIGH);
settings.setAppCacheEnabled(true);
settings.setAllowFileAccess(true);
settings.setAllowContentAccess(true);
settings.setDomStorageEnabled(true);
这是JS
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
alert(ca);
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1);
if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
}
return "";
}
尝试设置:
CookieManager.getInstance().setAcceptCookie(true);
必须调用
CookieManager.getInstance().setAcceptCookie(true)代码>在初始化webview之后。我想这是你的问题 我明白了,您正在尝试设置file://cookies。在创建Web视图或访问CookieManager之前,请尝试此方法:
请阅读此方法的文档 我没有任何文档可供参考,但出于某些(可能是安全)原因,无法从本地文件URL方案(例如:file://...)通过webView
因此,我认为唯一的解决方案是构建本地HttpServer(例如:)并为本地文件添加vhost。是否需要将cookies从浏览器应用程序(chrome)同步到webView,或者cookies不仅仅在webView中工作。您是否尝试过将CookieManager.getInstance().setAcceptCookie(true)放入代码>下面webView=(webView)findViewById(R.id.webView)是的,我试过了。我只需要在webview中。未涉及其他应用程序设置cookie的来源是哪里?每个使用WebView的应用程序都会得到一个独特的、最初为空的cookie罐。@ksasq:我只是简单地在JS中设置cookie,就像在在线浏览器中一样。.请参阅问题AHHHH中的更新最后。。。谢谢你,伙计,工作得很有魅力:)
CookieManager.getInstance().setAcceptCookie(true);