我有一个Data: URL(参见:http://en.wikipedia.org/wiki/Data_URI_scheme)(作为NSString),我想在Safari中打开它。你应该如何实现这个功能?(我尝试了openURL:.)
示例:
示例:
data:text/html;base64,(Some Base64 Encoded Data Here)
data:text/html;base64,(Some Base64 Encoded Data Here)
UIWebView
中完美运行,但使用openURL
却一点反应都没有。而如果你愿意在导航栏中键入一个这样的URL,Safari将欣然、正确地呈现它,因此这显然是sharedApplication openURL
的问题,而不是Safari的问题。如果base64字符串足够短(可能小于2K),您可以将其包装为http URL的查询参数,该URL只返回到数据URL的重定向。然后,您可以使用openURL打开http URL。是的,这意味着通过一些服务器进行跳转,但它会起作用。或者,由于Safari显然没有这样做,您可以告诉iPhone,您的应用程序是data:方案的处理程序,并负责在UIWebView中呈现内容。但这似乎有可能失败。:-) 首先,数据URL来自哪里?也许您可以构建一个网页,其内容仅包含<iframe src="<the data url>"/>
,再次在该URL上使用openURL。这应该可以:
NSURL *yourURL = [[NSURL alloc] initWithString:yourStr];
[[UIApplication sharedApplication] openURL:yourURL];
[yourURL release];