关于替换 UIWebView 网络模块的一些初步想法

使用了Chrome-iOS后开始思考这个问题,如何才能替换掉 UIWebView 的网络模块。

单纯解决这个问题,有两个方法:

1、实现 NSURLProtocol,替换 HTTP 协议的处理方式。

优点:正规

缺点:影响范围大

2、实现 NSURLCache,在对应的方法中用自己的网络模块发出请求。

优点:只影响 UIWebView

缺点:只能单线程加载资源。

需找资料

1、Chrome 的代码中有其对应的iOS平台代码,发现已经完成了网络模块的迁移,并可编译成 static lib。

2、导出 Chrome 的头文件,发现其实现了 HttpProtocolHandler,该类继承自 NSURLProtocol。

猜测与结论:iOS 版的 Chrome 是通过继承 NSURLProtocol 来替换 UIWebView 的网络栈。

posted @ 2013-01-07 11:44  Proteas  阅读(260)  评论(0编辑  收藏  举报