如何在基于WebKit的应用程序中启用本地存储?

sta*_*kos 12 webkit objective-c local-storage ios

我有一个嵌入WebKit WebView的Cocoa/Objective-C应用程序.我需要打开数据库支持和本地存储.我知道它可以完成 - 我在Safari中工作 - 但我找不到如何在我自己的应用程序中设置它的示例.

我发现这个(未答复的)SO问题提供了一个例子,但正如原始海报所提到的那样,它不起作用.事实上,他使用的方法(setDatabasesEnabled,setLocalStorageEnabled)没有在我的WebKit.framework(Xcode 3.2.5)中定义,尽管如果我自己定义它们似乎存在它们.

任何人都可以提供一个如何为基于WebKit的Cocoa应用程序启用本地数据库存储的示例吗?非常感谢如果是这样!

更新:我有一些工作......我对"数据库"与"本地存储"感到困惑,这显然是完全不同的东西.这是有效的代码:

WebPreferences* prefs = [webView preferences];
[prefs _setLocalStorageDatabasePath:@"~/Library/Application Support/MyApp"];
[prefs setLocalStorageEnabled:YES];
Run Code Online (Sandbox Code Playgroud)

这样可行,但它需要私有方法_setLocalStorageDatabasePath,这意味着我没有App Store.所以我现在修改过的问题是:有没有办法在使用私有方法的情况下完成这项工作?我在这个答案中找到了WebDatabaseDirectory首选项键,它控制着数据库的位置.但我无法在源中的任何位置找到相应的本地存储密钥.或者有没有办法强制本地存储使用数据库,所以WebDatabaseDirectory键?有任何想法吗?

Mar*_*ugh 11

我使用此代码将应用程序提交到Mac App Store,Apple批准了它:

Objective-C的

WebPreferences* prefs = [webView preferences];
[prefs _setLocalStorageDatabasePath:@"~/Library/Application Support/MyApp"];
[prefs setLocalStorageEnabled:YES];
Run Code Online (Sandbox Code Playgroud)

斯威夫特3

var prefs: WebPreferences? = webView.preferences
prefs?._setLocalStorageDatabasePath("~/Library/Application Support/MyApp")
prefs?.localStorageEnabled = true
Run Code Online (Sandbox Code Playgroud)

他们是否会继续批准,我不知道,但他们允许我在2011-01-29申请.更新:他们还批准了对同一个应用程序的版本更新,因此它经历了两次.

  • 你究竟在哪里放?@implementation?.H?澄清赞赏...抱歉愚蠢...... (4认同)
  • 这个问题是最后一个活动差不多一年前,因此苹果可能已经删除支持,为`_setLocalStorageDatabasePath:`和`setLocalStorageEnabled:`方法,因为我无法找到一种方法,在任何地方使用它们,但如果你是知道的支持还在那里,我如何在我的代码中获得对这些方法的支持,以便我可以使用它们? (2认同)