【问题标题】:Synthetic Webserver with Cocoa WebView on Mac OS XMac OS X 上带有 Cocoa WebView 的合成 Web 服务器
【发布时间】:2010-01-29 21:16:21
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: cocoa delegates webview


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 2010-09-09
      相关资源
      最近更新 更多