У меня есть приложение Cocoa/Objective-C, которое включает WebKit WebView. Мне нужно включить поддержку базы данных и локальное хранилище. Я знаю, что это можно сделать - я работаю в Safari, но я не могу найти пример того, как это установить в моем собственном приложении.
Я нашел этот (неотвеченный) вопрос SO, который дает пример, но, как упоминает оригинальный плакат, не работает. Фактически, методы, которые он использует (setDatabasesEnabled, setLocalStorageEnabled), не определены в моей программе WebKit.framework(Xcode 3.2.5), хотя они, похоже, существуют, если я сам их определяю.
Может ли кто-нибудь указать пример включения локального хранилища баз данных для приложения Cocoa на основе WebKit? Большое спасибо, если да!
Обновление: У меня что-то работает... Меня смутило "базы данных" и "локальное хранилище", которые, по-видимому, совсем разные. Вот код, который работает:
WebPreferences* prefs = [webView preferences];
[prefs _setLocalStorageDatabasePath:@"~/Library/Application Support/MyApp"];
[prefs setLocalStorageEnabled:YES];
Итак, это работает, но для этого требуется частный метод _setLocalStorageDatabasePath, что означает отсутствие для меня магазина приложений. Итак, мои измененные вопросы сейчас: есть ли способ сделать эту работу без использования частного метода? Я нашел ключ предпочтения WebDatabaseDirectory в этом ответе, который контролирует, куда идут базы данных. Но я не мог найти соответствующий ключ для локального хранилища в любом месте источников. Или есть способ заставить локальное хранилище использовать базу данных, и поэтому ключ WebDatabaseDirectory? Любые идеи?