WebビューでURLを開くアプリケーションがあります。ユーザーは、Webビューを介してサイトにログインし、ログインするとCookieを受け取る必要があります。ログイン後にCookieを取得する際に問題が発生します。
問題は、android.webkit.CookieManagerを使用してこれを実現し、すべてのCookieを単一の文字列で出力できることです。
ただし、(java.net.CookieStoreのように)Cookieストアを使用してこれを実現したいので、java.net.CookieManagerを使用する必要があります。
WebViewClientのonPageFinished()内で次のコードを使用しています。問題は、現在のページからコンテンツを取得する必要がある新しい接続を開くことにあることを知っています。助けていただければ幸いです、ありがとう
@Override
public void onPageFinished(WebView view, String url){
Log.d(TAG, "Finished loading: " + url);
CookieSyncManager syncManager = CookieSyncManager.createInstance(Main.this);
syncManager.sync();
CookieManager manager = new CookieManager();
manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(manager);
try {
URL blah = new URL(url);
HttpURLConnection con = (HttpURLConnection) blah.openConnection();
readStream(con.getInputStream()); // outputting html
}
catch (Exception e) {
}
CookieStore cookieJar = manager.getCookieStore();
List<HttpCookie> cookies = cookieJar.getCookies();
for (HttpCookie cookie: cookies) {
Log.d(TAG, "cookie name : "+cookie.getName().toString());
}
}