2

我想创建一个 Webview,我可以完全控制它加载的内容。本质上,我想提供一个类的实例,它扮演 URL 中命名的各种 Web 服务器的角色。理想情况下,我会为这个 webview 提供一个代理,它会告诉代理它需要的每个 URL,并且代理会用 MIME 类型和数据进行响应。

一种方法是让 Web 服务器在某个自定义端口(比如 2222)上运行,并提供一个初始 URL,如http://localhost:2222/initial/base/url。但是,这只允许我拦截同一主机上的相对 URL,而不是其他主机的绝对 URL。

我在文档中看到的 WebView 委托似乎允许用户进行高级控制,例如选择要加载哪些 URL 的策略,或监视加载进度,但不能拦截和控制自己加载的数据.

关于我如何实现这一目标的任何提示?

4

1 回答 1

0

NSURLProtocol提供这个功能。您将您的类注册为协议(最好称为协议处理程序),每个 NSURLRequest 都会被路由给您,询问您是否可以处理它。您说“是”,然后您的对象就可以完全控制 URL 加载过程。这与主 URL 加载引擎相关联,因此它负责所有 WebView、NSURLConnections 等。有关更多指针,请参阅此问题。

于 2010-01-29T21:22:56.693 回答