[英]Cannot get cookies in Android
我正在嘗試獲取我從 Android 中的 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更改為http://10.0.2.2:8080/geoserver/www/first_leaflet_webviewer.html和http://localhost ,以防萬一,但無濟於事。
我需要更改什么才能讀取 cookie?
您可以嘗試像這樣設置 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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.