我正在尝试获取我在安卓的JavaScript代码中设置的cookie。
我已经成功地检查了当Chrome加载网页时成功地创建了一个cookie,所以我认为这也应该发生在webview上。
这是我当前的代码:
webView.loadUrl("http://10.0.2.2:8080/geoserver/www/first_leaflet_webviewer.html");
[…]
String value = getCookie("http://10.0.2.2:8080", "latlng");getCookie定义为:
public String getCookie(String siteName,String CookieName){
String CookieValue = null;
CookieManager cookieManager = CookieManager.getInstance();
String cookies = cookieManager.getCookie(siteName);
if(cookies != null){
String[] temp=cookies.split(";");
for (String ar1 : temp ){
if(ar1.contains(CookieName)){
String[] temp1=ar1.split("=");
CookieValue = temp1[1];
}
}
}
return CookieValue;
}但是getCookie总是返回null,就好像cookie从未被创建过一样。
我已经尝试为http://10.0.2.2:8080/geoserver/www/first_leaflet_webviewer.html和http://localhost更改http://10.0.2.2:8080,以防万一,但无济于事。
为了能够读取cookie,我需要进行哪些更改?
发布于 2020-04-20 18:55:16
你能试着这样设置WebViewClient吗?(请注意,代码片段是kotlin。)
webView.webViewClient = object : WebViewClient() {
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
if (CookieManager.getInstance().getCookie(url) != null && CookieManager.getInstance().getCookie(url).contains("latlng")) {
//todo
}
}
override fun onPageFinished(view: WebView, url: String) {
super.onPageFinished(view, url)
if (CookieManager.getInstance().getCookie(url) != null && CookieManager.getInstance().getCookie(url).contains("latlng")) {
//todo
}
}
}
webView.loadUrl("http://10.0.2.2:8080/geoserver/www/first_leaflet_webviewer.html")https://stackoverflow.com/questions/60970731
复制相似问题