Kal*_*zem 2 local-storage ios indexeddb swift wkwebview
有一个带有 WKWebView“Parent”的控制器,它打开(推送)另一个带有另一个 WKWebView“Child”的控制器。
当Child修改 localStorage 时,sessionStorage 或 IndexedDB 然后弹回Parent,Parent不知道更改并需要重新加载以查看由 设置的新值Child。
这意味着两个 WKWebView 共享相同的 localStorage、sessionStorage、indexedDB,但它们需要刷新内容才能看到修改。
如何在 WKWebView 之间实时共享同一个存储?
WKWebViews 的 init 可以接收一个WKWebViewConfiguration带有变量的参数,该变量称为processPool代表所有 Web 内容(包括 localStorage、IndexedDB、cookies 等)过程。
因此,为了让 WKWebViews 实时共享所有内存管理,您需要为所有这些视图声明一个唯一的 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |