iPhone开放数据:Safari中的Url

iPhone开放数据:Safari中的Url,iphone,url,safari,data-url,Iphone,Url,Safari,Data Url,我有一个Data:URL(请参阅:)(作为NSString),我想在Safari中打开它。您将如何实现这一点(我尝试了openURL:) 例如: data:text/html;base64,(Some Base64 Encoded Data Here) 这应该做到: NSURL *yourURL = [[NSURL alloc] initWithString:yourStr]; [[UIApplication sharedApplication] openURL:yourURL]; [

我有一个Data:URL(请参阅:)(作为NSString),我想在Safari中打开它。您将如何实现这一点(我尝试了openURL:)
例如:

data:text/html;base64,(Some Base64 Encoded Data Here)
这应该做到:

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

假设“yourStr”是一个包含数据所在URL的NString

在iPhone OS 2.2.1和5.0.1中,无论是在模拟器还是在设备上,打开数据:url在
UIWebView
中都能完美地工作,但使用
openURL
完全没有任何作用

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

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

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


数据URL首先来自哪里?也许您可以构建一个内容仅为
的网页,然后再次在该URL上使用openURL

解决这个问题的一种方法可能是将其显示在UIWebView对象中。这基本上是Safari,但完全在您自己的应用程序中。我需要用户能够为页面添加书签-因此Safari是唯一的选项。openURL应该可以工作(这就是它的目的!)当您尝试使用openURL时发生了什么?它可能有助于显示URL。也许它的形状不好。我真的看过这部作品。。。我自己没法用,但试着。。。