2014-09-12 33 views
5

Kazanmaya çalıştığım şey, bir çerezi çerez olarak ayarlayarak bir https web sitesine otomatik olarak yazmaktır.Android Webview otomatik belirleme çerezini ayarlayarak https web sitesine giriş

çerez

Sayı 1

I set ile web görünümü https url yüklenirken

Temelde iki sorunla karşı karşıya am (O değil uygulama Web görünümündeki içinde android krom tarayıcı üzerinde çalışıyor ancak) günlük mesajını alıyorum.

Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

Ben onReceivedSslError geçersiz kılma çalıştı ve aşağıda handler.proceed(); aradı.

@Override 
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { 
    Log.d(TAG, "==> " + error.toString()); 
    handler.proceed(); 
} 

Ama yine de (çünkü sertifika sorunu Onun olay varsayıyorum.) Beyaz sayfaya bakınız

Sayı 2

I (örn https://www.abc.com/login.html)

benimle bir giriş url var

Elde etmeye çalıştığım bir çerez ayarlayarak web görünümüne otomatik giriş yapmak.

CookieSyncManager.createInstance(webView.getContext()); 
CookieManager cookieManager = CookieManager.getInstance(); 
CookieManager.getInstance().setAcceptCookie(true); 

String token = PreferenceHelper.loadTokenFromPreference(this); 

String sessionCookie = "staging=" + token; 

cookieManager.setCookie("https://www.abc.com/aaa/", 
    sessionCookie); 
CookieSyncManager.getInstance().sync(); 

SystemClock.sleep(1000); 

Ancak yine de otomatik giriş yapamıyorum.Rather beyaz sayfayı görüyorum.

Şu an emin olmadığım şey tam olarak nerede hata yaptığım.

cookieManager.setCookie, hangi tanımlama bilgisinin ayarlanması gerektiği için bir URL olarak ilk argümanı gerektirir, tam olarak hangi URL'yi vermem gerektiğini bilmiyorum?

Herkes çalışmam için doğru yaklaşımı önerebilir mi?

Teşekkür

+0

Çerez içeriğini değil, etki alanını bildiğinizden oldukça garip. Bu senin siten mi? Eğer değilse, çerez içeriğini nasıl öğrendiniz? – Simas

+0

@ user3249477 Ayrıca bir etki alanı ayarlıyorum. ama yine de boş bir sayfa alıyorum. –

cevap

0

Çok uzun bir süre aradıktan sonra sonunda çözüm geldi.

Çalışmak için aşağıdaki satırları eklemeliydim.

webView.getSettings().setAppCachePath(appCachePath); 
webView.getSettings().setAppCacheEnabled(true); 
+1

"appCachePath" nerede? –

7

Sen WebView arasında loadUrl işlevinde HttpHeader olarak Cookie geçebilir.

HashMap<String, String> map = new HashMap<String, String>(); 
String token = PreferenceHelper.loadTokenFromPreference(this); 
String sessionCookie = "staging=" + token; 
map.put("Cookie", sessionCookie); 
webView.loadUrl(url, map); 
+0

PreferenceHelper nedir? @Abhishek V –