MagicWebViewWebP
MagicWebViewWebP copied to clipboard
NSURLProtocol拦截WKWebView请求后,Post参数丢失
NSURLProtocol拦截WKWebView请求后,所有从WKWebView发出的ajax Post请求的参数丢失。
我也碰到同样的问题,请问您现在解决了嘛?
WebKit 进程是独立于 app 进程之外的,两个进程之间使用消息队列的方式进行进程间通信。比如 app 想使用 WKWebView 加载一个请求,就要把请求的参数打包成一个 Message,然后通过 IPC 把 Message 交给 WebKit 去加载,反过来 WebKit 的请求想传到 app 进程的话(比如 URLProtocol ),也要打包成 Message 走 IPC。出于性能的原因,打包的时候 HTTPBody 和 HTTPBodyStream 这两个字段被丢弃掉了,这个可以参考 WebKit 的源码,这就导致 -[WKWebView loadRequest:] 传出的 HTTPBody 和 NSURLProtocol 传回的 HTTPBody 全都被丢弃掉了。