我有一个 Data: URL(参见:http ://en.wikipedia.org/wiki/Data_URI_scheme )(作为 NSString),我想在 Safari 中打开它。你将如何做到这一点(我试过 openURL:.)
示例:
data:text/html;base64,(Some Base64 Encoded Data Here)
在 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。
这应该这样做:
NSURL *yourURL = [[NSURL alloc] initWithString:yourStr];
[[UIApplication sharedApplication] openURL:yourURL];
[yourURL release];
假设“yourStr”是一个 NString,其中包含您的数据所在的 URL。