我有一个Data:URL(请参阅:http://en.wikipedia.org/wiki/Data_URI_scheme)(作为NSString),我想在Safari中打开它。你怎么做到这一点(我试过openURL:。)
示例:
data:text/html;base64,(Some Base64 Encoded Data Here)
答案 0 :(得分:7)
在iPhone OS 2.2.1和5.0.1中,在模拟器和设备上,打开数据网址在UIWebView
中完美运行,但使用{{1}什么都没做。
如果您愿意在导航栏中输入一个URL,Safari很乐意并且正确地呈现这样的URL,因此这显然是openURL
的问题,而不是Safari。
如果base64字符串足够短(可能小于2K),您可以将其作为查询参数包装到http URL,该URL只返回重定向到数据URL。然后,您可以使用openURL打开http URL。是的,这意味着通过一些服务器弹跳,但它会起作用。
或者,由于Safari显然还没有这样做,你可以告诉iPhone 你的应用程序是数据的处理程序:方案并负责在UIWebView中呈现内容。不过,这似乎有可能在未来失败。 : - )
首先来自哪里的数据网址?也许您可以构建一个内容不超过sharedApplication openURL
的网页,并再次在该URL上使用openURL。
答案 1 :(得分:-1)
这应该这样做:
NSURL *yourURL = [[NSURL alloc] initWithString:yourStr];
[[UIApplication sharedApplication] openURL:yourURL];
[yourURL release];
假设“yourStr”是一个NString,其中包含数据所在的URL。