我有两个WKWebView
A
和B
都加载了本地file://
。这是我看到的行为:
A
中,设置localStorage.setItem('test', true)
B
中,阅读返回localStorage.setItem('test')
undefined
B
B
中,阅读返回localStorage.setItem('test')
true
因此A
和B
似乎共享本地存储,但不实时同步。这对我来说很奇怪。为什么两个WKWebView
之间的本地存储实时同步?
答案 0 :(得分:0)
您需要在WKWebView之间共享一个独特的WKProcessPool。
let uniqueProcessPool = WKProcessPool()
let configA = WKWebViewConfiguration()
configA.processPool = uniqueProcessPool
let webViewA = init(frame: CGRect.zero, configuration: configA)
let configB = WKWebViewConfiguration()
configB.processPool = uniqueProcessPool
let webViewB = init(frame: CGRect.zero, configuration: configB)
如果没有这个,它会感觉好像WKWebView使用了一个中央ProcessPool的副本而不是对它的引用访问。这解释了为什么您没有实时看到更改,并且需要重新加载视图。