9

我有一个 Data: URL(参见:http ://en.wikipedia.org/wiki/Data_URI_scheme )(作为 NSString),我想在 Safari 中打开它。你将如何做到这一点(我试过 openURL:.)
示例:

data:text/html;base64,(Some Base64 Encoded Data Here)
4

2 回答 2

9

在 iPhone OS 2.2.1 和 5.0.1 中,无论是在模拟器还是在设备上,打开data: url 在 a 中都可以正常工作,UIWebView但 usingopenURL完全没有任何作用。

如果您愿意在导航栏中键入一个 URL,Safari 会很乐意并正确地呈现这样的 URL,所以这显然是 Safari 的问题sharedApplication openURL,而不是 Safari 的问题。

如果 base64 字符串足够短(可能小于 2K),您可以将其作为查询参数包装到 http URL,该 URL 仅返回对数据 url 的重定向。然后你可以使用 openURL 打开 http URL。是的,这意味着通过某些服务器弹跳,但它会起作用。

或者,由于 Safari 显然没有这样做,您可以告诉 iPhone您的应用程序是数据的处理程序:方案并负责在 UIWebView 中呈现内容。不过,这似乎在未来可能会失败。:-)

数据 URL 最初来自哪里?也许您可以构建一个网页,其内容只不过是<iframe src="<the data url>"/>一次又一次地在该 URL 上使用 openURL。

于 2009-03-22T03:29:42.187 回答
-1

这应该这样做:

NSURL *yourURL = [[NSURL alloc] initWithString:yourStr];    
[[UIApplication sharedApplication] openURL:yourURL];
[yourURL release];

假设“yourStr”是一个 NString,其中包含您的数据所在的 URL。

于 2009-03-18T21:55:44.833 回答