如何设置localstorage以使其在程序运行中保持不变

时间:2011-12-21 18:50:39

标签: cocoa webview local-storage

我在一个程序工作中有一个webview的webview,但它总是在下一个程序运行开始时消失。我检查了文件,它在程序运行后仍然存在,但是在下一个程序开始时,它会将其清除。

这是我的代码:

- (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 :(得分:0)

查看WebPreferences上的文档,每次启动它都使用webview,WebPreferences是WebView之前的,这会导致每次启动应用程序时都创建一个新的WebPreferences。如果你想保持持久性,你应该使用initWithIdentifier:“indentifer”来启动它。

WebPreferences Class Reference

答案 1 :(得分:0)

我确定您知道使用私有API的风险。

那就是说,在那里放一些断点,看看缓存被吹走了什么点。尝试将数据库移动到该行之前的临时位置,然后立即将其重新放回。