2011-11-23 8 views
5

Po kilku problemach z moją obecną wersją PandoraMan (http://github.com/zquestz/PandoraMan). Wszystko jest w większości funkcjonalne, pozycja okna jest zapisywana, wszystkie niezbędne funkcje działają, ale widzę jeden błąd.Pliki cookie/stan kakao WebView nie jest zachowywany

Po zalogowaniu się do Pandory, nigdy się nie zachowa. Byłem przy założeniu, że odczytało pliki systemowe i stan współdzielony z Safari. Starsza wersja (używając starożytnego xcode na 10.4) działała dobrze.

Po uruchomieniu aplikacji i zalogowaniu się przy użyciu PandoraMan, loguje się, a witryna działa normalnie. Jednak po ponownym uruchomieniu aplikacji zawsze muszę się ponownie zalogować. To nigdy się nie zdarzyło i nie mogę znaleźć niczego w dokumentach dotyczących tego problemu.

Jeśli ktoś ma pewien wgląd w tę kwestię, byłoby fantastycznie. Kod jest open source, dzięki czemu można sprawdzić problem bez odbijania kodu tam i z powrotem w komentarzach.

+0

Próbowałem kilka innych stron, za wszystko inne niż Pandora mogę się utrzymać moją logowanie ... to staje się coraz bardziej dziwaczne. – quest

+0

Wszelkie aktualizacje do tego? Mam również ten problem, tworząc własną, samodzielną aplikację pandora. Czy potwierdziłeś, że jest to problem specyficzny dla Pandory? – ndmweb

+0

czy było jakieś rozwiązanie tego problemu? –

Odpowiedz

1

Twoja aplikacja ma własny "plik cookie" w kontenerze [NSHTTPCookieStorage sharedHTTPCookieStorage].

Oto jak można podjąć szybkie spojrzenie na pliki cookie w twojej aplikacji Cookie Jar: są dostępne dla filtrowania i manipulacji

NSHTTPCookie *cookie; 
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
for (cookie in [cookieJar cookies]) { 
    NSLog(@"%@", cookie); 
} 

kilka metod. Zapoznaj się z dokumentacją dotyczącą dostępu do plików cookie w wersji NSHTTPCookieStorage, a dokumentacja NSHTTPCookie umożliwiająca uzyskanie dostępu do poszczególnych właściwości pliku cookie:

Może to pomóc w rozwiązaniu problemu.

+0

Jest to zdecydowanie przydatne, jednak już ustaliłem, że te same pliki cookie są wysyłane z przeglądarki, z jakiegoś powodu Pandora robi coś dziwnego. Jeśli korzystam z dowolnej innej usługi, logowanie przebiega zgodnie z oczekiwaniami. Nawet powąchałem rozmowę http za pomocą wireshark, a pliki cookie wysłane na pierwszą prośbę idealnie pasują ... – quest

1

Pandora używa localStorage, aby zachować stan użytkownika. Użyj tego:

WebPreferences* prefs = [WebPreferences standardPreferences]; 
[prefs _setLocalStorageDatabasePath:@"~/Library/Application Support/MyApp"]; 
[prefs setLocalStorageEnabled:YES]; 
[self.webView setPreferences:prefs]; 

Dodaj je do początku pliku:

@interface WebPreferences (WebPreferencesPrivate) 
- (void)_setLocalStorageDatabasePath:(NSString *)path; 
- (void)setLocalStorageEnabled:(BOOL)localStorageEnabled; 
@end 

Więcej: How do I enable Local Storage in my WebKit-based application?

Powiązane problemy