Ios 在WKWebView之间共享/重新加载本地存储、IndexedDB和Cookie
有一个具有WKWebView“父级”的控制器,它打开(推送)另一个具有WKWebView“子级”的控制器 当Ios 在WKWebView之间共享/重新加载本地存储、IndexedDB和Cookie,ios,swift,local-storage,indexeddb,wkwebview,Ios,Swift,Local Storage,Indexeddb,Wkwebview,有一个具有WKWebView“父级”的控制器,它打开(推送)另一个具有WKWebView“子级”的控制器 当Child修改localStorage、sessionStorage或IndexedDB,然后弹出到Parent,Parent不知道更改,需要重新加载以查看Child设置的新值 这意味着两个WKWebView共享相同的localStorage、sessionStorage和indexedDB,但它们需要刷新内容才能看到修改 如何在WKWebView之间实时共享同一存储?WKWebView的
Child
修改localStorage、sessionStorage或IndexedDB,然后弹出到Parent
,Parent
不知道更改,需要重新加载以查看Child
设置的新值
这意味着两个WKWebView共享相同的localStorage、sessionStorage和indexedDB,但它们需要刷新内容才能看到修改
如何在WKWebView之间实时共享同一存储?WKWebView的init可以接收一个参数
WKWebViewConfiguration
,该参数带有一个名为processPool
的变量,该变量表示所有web内容(包括localStorage、IndexedDB、Cookie等)进程
因此,为了让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)