WKWebViewWithURLProtocol
:Warning:
Note:If you target iOS 11, you can now use WKURLSchemeHandler to avoid this trick!
😆
introductions
After iOS8.0, WKWebView want to instead of UIWebView, but with some defects such as: URLProtocol can't process the request from WKWebView.
WKWebViewWithURLProtocol want to fix this use runtime. Now-coming!
But Notice, WKWebView ignored HTTP Body in request, it's a bug, resolve with Javascript bridge or NSURLSession.
[NSURLProtocol wk_registerScheme:@"http"];
[NSURLProtocol wk_registerScheme:@"https"];
[NSURLProtocol registerClass:[URLProtocol class]];URLProtocol is the subclass of NSURLProtocol, before this, use wk_registerScheme to let URLProtocol known what scheme can be hooked from WKWebView. Now this demo want to hook http and https scheme.
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.devdylan.cn"]]];Now, open your custom URLProtocol, set some breakpoint or logs, oh my god! it's worked!
Notes: It's only useful when systemVersion >
iOS8.4
Some questions:
Q: Used private API when in review:
Installation
pod "WKWebViewWithURLProtocol"Author
Dylan, dylan@china.com
Thanks
@yeatse, Original repo without cocoapods
License
MIT License.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
