所以我正在使用 WebKit 的 - WebView 和 WebFrame。我使用自定义 NSURLProtocol 从数据库中检索每个请求的 HTML。问题在于 HTML 中的链接都是相对的,而实际上它们应该是绝对的。例如,页面
foo/bar.html
可能有一个链接指向
foo/baz.html
问题是,由于链接是相对的,因此请求最终是针对
/foo/foo/baz.html
到目前为止,我已经尝试通过比较两个 URL 并去除公共前缀(在本例中为“foo/”)来解决此问题,留下 foo/baz.html。然而,这并不适用于所有可能性,尤其是当路径中有多个目录时。我在 WebView 的 frameLoadDelegate 的“didStartProvisionalLoadForFrame:”方法中执行此操作。
不幸的是,我无法控制正在显示的 HTML,因此修改链接本身不是一种选择。