iPhone Open DATA:Url在Safari中

时间:2009-03-13 04:27:26

标签: iphone url safari data-url

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

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

2 个答案:

答案 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。