1

ここ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 に送信されていません。

4

2 に答える 2

0

最後に、Asynctask を使用してバックグラウンドでスリープを実行することで、これをソートしました。

于 2012-12-19T00:39:12.023 に答える