我想创建一个Webview,我可以完全控制它加载的内容。基本上我想提供一个类的实例,它扮演URL中命名的各种Web服务器的角色。理想情况下,我会为此webview提供一个委托,它会告诉委托每个需要的URL,委托将使用MIME类型和数据进行响应。
执行此操作的一种方法是在某个自定义端口(例如2222)上运行Web服务器,并提供类似http://localhost:2222/initial/base/url的初始URL。但是,这只允许我截取同一主机上的相对URL,而不是其他主机的绝对URL。
我在文档中看到的WebView委托似乎允许用户进行高级控制,例如选择要加载哪些URL的策略,或者监视加载的进度,而不是拦截和控制数据的能力。自己被装上了。
有关如何实现此目标的任何提示?
答案 0 :(得分:0)
NSURLProtocol提供此功能。您将类注册为协议(可能更好地称为协议处理程序),并且每个NSURLRequest都将路由到您,询问您是否可以处理它。你说YES然后你的对象完全控制URL加载过程。这与主URL加载引擎相关联,因此它会处理所有WebView,NSURLConnections等。有关更多指示,请参阅this question。