0

我有一个UIWebView正在用loadHTMLString:baseURL:. 这个 webview 的内容有些随意,可能包括 iframe 到 web 上的资源,比如 youtube 视频嵌入。Youtube iframe 通常使用无方案的 URls,这会带来问题。似乎因为 web 视图没有使用请求初始化,而是使用静态 HTML,Webkit 没有为这些需要为 iframe 之类的添加请求进行任何方案确定。因此,具有无方案src属性的 iframe 被加载为本地文件,因此失败。

有没有比简单地用 javascript 搜索看似无方案的 URL 并替换它们更好的方法来处理这个问题?

4

1 回答 1

0

如果您传递nilbaseURL,则默认方案将变为about并且无方案资源将无法加载。将 HTTP URL(甚至是无效 URL)传递给loadWithHTMLString:baseURL:. 例如:

NSString *html = @"<html><img src=\"//example.com/some_image.jpg\"></html>";
[self.webView loadHTMLString:html baseURL:[NSURL URLWithString:@"http://localhost"]];

在我的测试中,我发现简单地通过[NSURL URLWithString:@"http://"]就可以了。

于 2013-10-21T16:30:39.940 回答