我有一个嵌入了WebKit WebView的Cocoa/Objective-C应用程序。我需要打开数据库支持和本地存储。我知道可以做到这一点-我在Safari中使用它-但我找不到如何在自己的应用程序中设置这个的示例。
我找到这个(未解答)SO问题,其中提供了一个示例,但正如原始发布者所提到的,它不起作用。事实上,他使用的方法(setDatabasesEnabled,setLocalStorageEnabled)在我的WebKit.framework(Xcode 3.2.5)中没有定义,尽管如果我自己定义它们,它们似乎存在。
是否有人可以提供一个示例,说明如何为基于WebKit的Cocoa应用程序启用本地数据库存储?如果是这样,非常感谢!
更新:我已经有了一些工作......我对“数据库”与“本地存储”感到困惑,这显然是两种完全不同的东西。这是有效的代码:
我找到这个(未解答)SO问题,其中提供了一个示例,但正如原始发布者所提到的,它不起作用。事实上,他使用的方法(setDatabasesEnabled,setLocalStorageEnabled)在我的WebKit.framework(Xcode 3.2.5)中没有定义,尽管如果我自己定义它们,它们似乎存在。
是否有人可以提供一个示例,说明如何为基于WebKit的Cocoa应用程序启用本地数据库存储?如果是这样,非常感谢!
更新:我已经有了一些工作......我对“数据库”与“本地存储”感到困惑,这显然是两种完全不同的东西。这是有效的代码:
WebPreferences* prefs = [webView preferences];
[prefs _setLocalStorageDatabasePath:@"~/Library/Application Support/MyApp"];
[prefs setLocalStorageEnabled:YES];
这样可以实现,但需要使用私有方法_setLocalStorageDatabasePath,这意味着我不能在应用商店中使用。因此,我的修改后的问题是:是否有一种方法可以在不使用私有方法的情况下使其工作?我在这个答案中找到了WebDatabaseDirectory preference key,它控制着数据库的位置。但我在源代码中找不到相应的本地存储键。或者有没有办法强制本地存储使用数据库,从而使用WebDatabaseDirectory键?有什么想法吗?
_setLocalStorageDatabasePath:
和setLocalStorageEnabled:
方法的支持,因为我无法在任何地方找到使用它们的方法,但如果您知道仍然有支持,那么我该如何将这些方法的支持添加到我的代码中,以便我可以使用它们? - Carter Pape