2012-11-26 3 views
0

다음 코드를 사용하여 Andriod 버전을 확인하고 적절하게 도메인을 설정합니다.안드로이드 버전 17에서 webview 용 쿠키를 설정할 수 없습니다.

domain = "domain.com"; 
int androidVersion = android.os.Build.VERSION.SDK_INT; 
Log.d(TAG, "Android version" +androidVersion); 
if(androidVersion >= 14){ 
    Log.d(TAG, "version is greater than 14"); 
    domain = ".domain.com"; 
} 

쿠키를 설정하십시오. 나는 다음 코드를 사용한다 :

CookieManager cookieManager = CookieManager.getInstance(); 
if(!cookie.equals("")){ 
    cookieManager.setCookie(domain, cookie); 
} 
try{ 
    CookieSyncManager.getInstance().sync(); 
}catch(IllegalStateException e){ 
    e.printStackTrace(); 
} 

이 코드는 17보다 작은 버전에서 잘 작동한다. 자바 스크립트에서 설정 한 쿠키를 확인한다. 나는 안드로이드 버전 17에서 그것을 볼 수 없다. 어떤 도움을 주시면 대단히 감사하겠습니다.

감사

+0

코드에서 'cookieManager.removeSessionCookie();'를 사용 했습니까? – Darpan

답변

1

의 setcookie 첫 번째 인수는 "http://domain.com/"와 같은 전체 URL을해야합니다. 또한 WebView를 사용하는 경우 쿠키가 즉시 적용되지 않습니다. 쿠키 동기화를 CookieSyncManager와 시도해 볼 수 있습니다. 이 당신을 도울 것입니다

http://developer.android.com/reference/android/webkit/CookieSyncManager.html

+0

여기에서 cookieSyncManager를 사용하고 있습니다. 전체 URL을 사용해보십시오. 빠른 답변 감사합니다 – Bharath

0

희망? 이것은 내 앱에서 쓴 것이며 작동합니다.

Cookie sessionCookie = LoginWebView.cookie; 
CookieSyncManager.createInstance(webview.this); 
CookieManager cookieManager = CookieManager.getInstance(); 
if (sessionCookie != null) { 
    cookieManager.removeSessionCookie(); 
    String cookieString = sessionCookie.getName(); 
    Log.v(TAG, "sync cookies: " + cookieString); 
    cookieManager.setCookie(domain, cookieString); 
    CookieSyncManager.getInstance().sync(); 

} 
관련 문제