前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WKWebView的local storage数据同步的问题

WKWebView的local storage数据同步的问题

作者头像
拉维
发布2021-09-14 14:50:08
2.1K0
发布2021-09-14 14:50:08
举报
文章被收录于专栏:iOS小生活iOS小生活

最近在开发过程中遇到这样一个问题:

webView1中加载了一个H5,webView2中加载了同样的一个H5,该H5是一个搜索页面,通过Local storage来持久化搜索记录,但是在webView1搜索的记录并没有及时同步到webView2中。

这个问题的关键就在于WKProcessPool。

WKProcessPool是用于配置进程池的,它与网页视图的资源共享有关。WKProcessPool这个类中没有暴露任何的属性和方法,如下图所示:

配置为同一个进程池的webView之间可以共享数据(例如cookie、localStorage等)。

每一个webView都会有自己的一个web内容进程,这些进程会被放进config配置的processPool中,处于同一个processPool中的web内容进程之间会共享。但是processPool中的进程会有限制,一旦达到该限制,processPool中的web内容进程之间将会停止共享。

所以我将WKProcessPool设置成了单例:

代码语言:javascript
复制
class FXProcessPool: WKProcessPool {
  static let sharedPool = FXProcessPool()
  
  private override init() {
    super.init()
  }
  
  required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }
}

这样的话,我应用程序中的各个webView间的localStorage就会共享了。

以上

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS小生活 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档