【问题标题】:Share/Reload localStorage, IndexedDB, cookies between WKWebViews在 WKWebViews 之间共享/重新加载 localStorage、IndexedDB、cookie
【发布时间】:2017-08-26 20:02:45
【问题描述】:

有一个带有 WKWebView“父”的控制器打开(推动)另一个带有另一个 WKWebView“子”的控制器。

Child 修改localStorage、sessionStorage 或IndexedDB 然后弹回到Parent 时,Parent 不知道这些更改,需要重新加载才能看到Child 设置的新值。

这意味着两个 WKWebView 共享同一个 localStorage、sessionStorage、indexedDB,但是它们需要刷新内容才能看到修改。

WKWebView之间如何实时共享同一个存储?

【问题讨论】:

    标签: ios swift local-storage indexeddb wkwebview


    【解决方案1】:

    WKWebViews 的 init 可以接收一个参数WKWebViewConfiguration 和一个名为processPool 的变量,它代表了所有的Web 内容(包括localStorage、IndexedDB、cookie 等)进程。

    所以为了让 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)
    

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 2015-07-13
      • 1970-01-01
      • 2014-10-25
      • 2021-09-18
      • 2016-07-10
      • 2013-07-20
      • 1970-01-01
      • 2014-07-29
      相关资源
      最近更新 更多