Mac OS X 上带有 Cocoa WebView 的综合 Web 服务器

2024-01-06

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

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

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

关于我如何实现这个目标有什么提示吗?


NSURL协议 http://developer.apple.com/mac/library/documentation/cocoa/Reference/Foundation/Classes/NSURLProtocol_Class/Reference/Reference.html起到这个作用。你将你的类注册为协议(也许更好地称为协议处理程序),每个 NSURLRequest 都会被路由到你,询问你是否可以处理它。你说“是”,然后你的对象就可以完全控制 URL 加载过程。这与主 URL 加载引擎相关,因此它负责所有 WebView、NSURLConnections 等。请参阅这个问题 https://stackoverflow.com/questions/2000869/manipulating-webkit-css-data-before-loading以获得更多指示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mac OS X 上带有 Cocoa WebView 的综合 Web 服务器 的相关文章