Как установить локальное хранилище, чтобы оно сохранялось при выполнении программы - PullRequest
3 голосов
/ 21 декабря 2011

У меня есть локальное хранилище для веб-просмотра в работающей программе, но оно всегда стирается в начале следующего запуска программы. Я проверил файл, и он сохраняется после запуска программы, но в начале следующего он стирает его.

Вот мой код:

- (void)awakeFromNib {
    WebPreferences *prefs = [webView preferences];
    [prefs _setLocalStorageDatabasePath:@"~/Library/Application Support/MyApp"];
    [prefs setDatabasesEnabled:YES];
    [prefs setLocalStorageEnabled:YES];

    NSString *resourcesPath = [[NSBundle mainBundle] resourcePath];
    NSString *htmlPath = [resourcesPath stringByAppendingString:@"/htdocs/index.html"];
    [[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:htmlPath]]];

    [window setDelegate:self];
}

Любая помощь будет оценена! Спасибо

Ответы [ 2 ]

0 голосов
/ 14 мая 2012

Я уверен, что вы знаете риски использования частных API.

Тем не менее, поместите несколько точек останова и посмотрите, в какой момент кэш сдувается. Попробуйте переместить базу данных во временное местоположение непосредственно перед этой строкой, а затем сразу же верните ее обратно.

0 голосов
/ 02 января 2012

посмотрите на документ по WebPreferences, вы инициируете его использование веб-просмотра каждый раз, WebPreferences предварительно WebView, поэтому вы создаете новые Web-ссылки каждый раз, когда вы запускаете приложение. Если вы хотите сохранить его постоянным, вы должны инициировать его с помощью initWithIdentifier: "indentifer".

Справочник по классам WebPreferences

...