Cookies / State of Cocoa WebView не сохраняется - PullRequest
5 голосов
/ 24 ноября 2011

Имеется несколько проблем с моей текущей сборкой PandoraMan (http://github.com/zquestz/PandoraMan). В большинстве случаев все работает, положение окна сохраняется, все основные функции работают, однако я вижу одну ошибку.

Когда я вхожу в Пандору, она никогда не сохраняется. Я предполагал, что он читает системные куки и разделяет состояние с Safari. Старая версия (с использованием древнего xcode на 10.4) работала нормально.

Если я запускаю приложение и авторизируюсь с помощью PandoraMan, он входит в систему, и сайт работает в обычном режиме. Однако, когда я перезагружаю приложение, мне всегда приходится снова входить в систему. Этого никогда не было, и я не могу найти ничего в документах по этому вопросу.

Если у кого-то есть понимание этого вопроса, это было бы замечательно. Код с открытым исходным кодом, так что вы можете проверить проблему, не пересылая код в комментариях.

Ответы [ 2 ]

1 голос
/ 10 июня 2014

Pandora использует localStorage для сохранения состояния пользователя.Используйте это:

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

Добавьте это в начало файла:

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

Подробнее: Как включить локальное хранилище в моем приложении на основе WebKit?

1 голос
/ 02 декабря 2011

У вашего приложения есть свой «cookie jar» в контейнере [NSHTTPCookieStorage sharedHTTPCookieStorage].

Вот как вы можете быстро взглянуть на файлы cookie в банке файлов cookie вашего приложения:

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

Для фильтрации и манипулирования доступно несколько методов. Посмотрите документацию NSHTTPCookieStorage для доступа к файлам cookie и документацию NSHTTPCookie для доступа к отдельным свойствам файлов cookie

Может быть, это может помочь вашей проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...