代码之家  ›  专栏  ›  技术社区  ›  Isaac Waller

iPhone打开数据:Safari中的Url

  •  9
  • Isaac Waller  · 技术社区  · 17 年前

    我有一个Data:URL(请参阅: http://en.wikipedia.org/wiki/Data_URI_scheme )(作为NSString),我想在Safari中打开它。你会如何实现这一点(我尝试了openURL:)
    例子:

    data:text/html;base64,(Some Base64 Encoded Data Here)
    
    2 回复  |  直到 12 年前
        1
  •  7
  •   Peter DeWeese    14 年前

    在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 你的 app是 数据: 并负责在UIWebView中呈现内容。不过,这似乎在未来会失败。 :-)

    数据URL最初来自哪里?也许你可以构建一个网页,其内容只不过是 <iframe src="<the data url>"/> 并再次在该URL上使用openURL。

        2
  •  -1
  •   GoatRider    17 年前

    这应该可以做到:

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

    假设“yourStr”是一个带有数据所在URL的NString。