UIWebView支持的文件格式

时间:2009-08-24 02:27:07

标签: iphone cocoa-touch uiwebview

UIWebView支持的所有文件格式是什么? 在我的测试中,我发现它支持XLS,DOC,PPT,PDF但不支持XLSX和DOCX,RTF。

它支持图像文件,如JPG,PNG,GIF,BMP,不确定TIFF或

确切地说,所有类型的支持都不明确......

UIWebView文档也没有明确说明。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:15)

Apple Website提供了有关UIWebView支持的文件格式的技术说明:

iPhone OS 2.2.1

以来
  • Excel(.xls)
  • Keynote(.key.zip)
  • Numbers(.numbers.zip)
  • Pages(.pages.zip)
  • PDF(.pdf)
  • Powerpoint(.ppt)
  • Word(.doc)

iPhone OS 3.0

以来
  • 富文本格式(.rtf)
  • 富文本格式目录(.rtfd.zip)
  • Keynote '09(.key)
  • Numbers '09(.numbers)
  • Pages '09(.pages)

答案 1 :(得分:2)

我也在寻求一个明确的答案。

虽然技术说明告诉我们支持哪些高级格式,但它并没有告诉我们哪种简单格式,例如支持图像类型。但是,我需要这些信息,以便让网络服务器知道它可以发送给我的格式(即通过http的“接受”标题)。

<强>更新

实际上,这是来自Apple的UIWebView支持的图像格式的文档:http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/GraphicsandDrawing/GraphicsandDrawing.html#//apple_ref/doc/uid/TP40007072-CH10-SW8

答案 2 :(得分:1)

显然支持<。> .rtf文件,但我无法让UIWebView正确显示它们。它会正确地格式化文本(大小,颜色,字体等)但是图像只是普通没有呈现(我试过.gif,.png和.jpg无济于事)。如果您遇到使用.rtf的麻烦,您可能希望在UIWebView中显示图像,因为rtf的主要好处是您可以将图像嵌入到文件中。这是在实际的iPad 1(4.3)和模拟的iPhone(4.3)上尝试的。

在UIWebView中显示rtf所需的代码需要将rtf写入具有rtf文件扩展名的文件。如果您没有使用文件扩展名或不正确的文件扩展名,则拒绝加载文件,因此请确保将其写为.rtf。

这是一个Objective C函数,用于获取输入字符串(应包含您希望显示的rtf)并获取UIWebView以将其加载到视图中...

-(void) loadRtf : (UIWebView*) webView : (std::string) rtfFile
{
    // This function will write the rtf to a file in your apps bundle location on the iDevice and use
    // the UIWebView to load it...
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = ([path count] > 0) ? [path objectAtIndex:0] : nil;
    NSString *fullPath = [basePath stringByAppendingPathComponent:@"rtfData.rtf"];
    std::string fp = [fullPath cStringUsingEncoding:NSASCIIStringEncoding];
    std::ofstream fs;
    fs.open(fp.c_str(), std::ios_base::binary);
    if( !fs.is_open() )
        return;
    fs << rtfFile;
    fs.close(); 
    NSURL *url = [NSURL fileURLWithPath:fullPath];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];  
}