ここSOでこの質問に対するいくつかの答えを見つけましたが、それらの実装に成功していないので、誰かが私のコードをチェックして、どこが間違っているのか教えてくれることを願っています.
Cookie が DefaultHttpClient から設定されていることを確認し、以下のコード スニペットでわかるように、Log.d で書き出しています。このコード セグメントの最後で呼び出される WebView に設定されていないだけです。渡される Cookie は、私の Asp.net mvc プロジェクトからのセッション Cookie です。WebView がサイトにアクセスしたときにログインしたままにならない理由はありますか? Facebookの文言に惑わされないでください。私はすべて機能しています。このCookieは、自分のサイトにログインし続けるためにセッションCookieを渡す自分のサーバー用です(私のFacebookのものに基づいています)。
Cookie sessionCookie = FacebookLoginService.cookie;
Log.d("intialwebview",sessionCookie.toString());
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
if (sessionCookie != null) {
cookieManager.removeSessionCookie();
String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain();
Log.d("intialwebview",cookieString);
cookieManager.setCookie(FacebookLoginService.cookie.getDomain(), cookieString);
CookieSyncManager.getInstance().sync();
}
//end cookie section
int userId = prefs.getInt(C.USER_ID, 0);
webView = (WebView) findViewById(R.id.web_view);
webView.getSettings().setUserAgentString(webView.getSettings().getUserAgentString() + "(Rambo)");
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.loadUrl(C.BaseUrl + "home/firstpage");
EDIT: コードでWebビューを作成しようとしました:
WebView webView = new WebView(this);
同じ結果です。Cookie が webview に送信されていません。