gpt4 book ai didi

ios - 两个 WKWebViews 共享本地存储,但仅在重启后

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:33:41 24 4
gpt4 key购买 nike

我有两个 WKWebView AB 都加载本地 file://。这是我看到的行为:

  • A中,设置localStorage.setItem('test', true)
  • B 中,读取返回 undefinedlocalStorage.setItem('test')
  • 重启B
  • B 中,读取返回 truelocalStorage.setItem('test')

所以看起来AB共享本地存储,但是没有实时同步。这对我来说很奇怪。为什么两个 WKWebView 之间的本地存储没有实时同步?

最佳答案

您需要在您的 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 的副本而不是对它的引用访问。这就解释了为什么您看不到实时更改并且需要重新加载 View 。

关于ios - 两个 WKWebViews 共享本地存储,但仅在重启后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36332208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com