Cocoa: WKWebView本地存储

Cocoa: WKWebView local storage

我正在尝试让本地存储与 WKWebView 一起使用。

我创建了一个 small demo project。这是一个 Mac 应用程序,显示 window 和一些按钮和 WKWebView.

三个按钮显示同一页面的三个变体:Sticky Notes WebKit demo:

前两个不行;后者确实如此。

应该会出现一个默认的便签,启用 新便签 按钮将添加新的便签。

RemoteLocal 变体中,没有出现注释,New Note按钮被禁用,表明它无法访问本地存储。

我希望我只是在加载 WKWebView 时做错了什么,但这可能不受支持。

这是我的 远程 变体的代码:

WKWebViewConfiguration *config = [WKWebViewConfiguration new];

config.websiteDataStore = [WKWebsiteDataStore defaultDataStore];

self.webView = [[WKWebView alloc] initWithFrame:self.container.frame configuration:config];
self.webView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;

[self.container addSubview:self.webView];

NSURL *url = [NSURL URLWithString:@"https://webkit.org/demos/sticky-notes/"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

[self.webView loadRequest:request];

非常感谢任何帮助!

更新:事实证明,虽然我使用的本地存储机制在 Safari 中有效,但在 WKWebView 中无效,但它比预期的要容易:只需使用 localStorage JavaScript变量。