链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

KKJSBridge-一站式解决WKWebView相关问题

KKJSBridge是一个开源项目,主要用于一站式解决WKWebView支持离线包,Ajax/Fetch请求,表单请求和Cookie同步的问题,基于AjaxHook,FetchHook和CookieHook技术。项目支持模块化管理JSAPI,模块间可共享上下文、转发消息、支持JS...

访问官网 →

KKJSBridge-一站式解决WKWebView相关问题

项目简介

KKJSBridge是一个在GitHub上开源的项目,它主要用于一站式解决WKWebView支持离线包,Ajax/Fetch请求,表单请求和Cookie同步的问题,其实现基于AjaxHook,FetchHook和CookieHook等技术。这个项目在功能上十分丰富,例如支持模块化的管理JSAPI,模块间可以共享上下文信息、消息转发以及支持JSBridge同步调用,并且兼容WebViewJavascriptBridge请求等。

核心技术

项目基于AjaxHook,FetchHook和CookieHook技术构建。例如在AjaxHook中,提供了两种方案,分别是AjaxHook部分API+NSURLProtocol(对应KKJSBridge/AjaxProtocolHook)和AjaxHook全部API(对应KKJSBridge/AjaxHook)。前者通过hook ajax中的open/send方法,借助JSBridge缓存body数据,再由NSURLProtocol拦截请求重新拼接并返回结果;后者则是使用hook的XMLHttpRequest对象代理真实请求,hook所有相关方法,通过Native侧创建NSMutableRequest对象并处理请求结果通知JS侧。此外,项目还涉及如NSNotificationCenter用于监听通知、NSURLSessionDataTask处理网络请求数据等技术。

项目总结

KKJSBridge项目为WKWebView相关的多种需求提供了全面的解决方案,其功能的多样性和技术的深度都值得深入研究。如果你对这个项目有任何想法或者建议,欢迎在下方留言一起参与讨论。

项目地址

GitHub链接直达