【问题标题】:File Formats Supported by UIWebViewUIWebView 支持的文件格式
【发布时间】:2010-11-22 03:45:30
【问题描述】:

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

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

确切地说,所有类型都支持什么还不清楚……

UIWebView 文档也没有明确说明。

有人可以帮忙吗?

【问题讨论】:

    标签: iphone cocoa-touch uiwebview


    【解决方案1】:

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

    iPhone OS 2.2.1

    • Excel (.xls)
    • 主题演讲 (.key.zip)
    • 数字 (.numbers.zip)
    • 页面 (.pages.zip)
    • PDF (.pdf)
    • PowerPoint (.ppt)
    • Word (.doc)

    iPhone OS 3.0

    • 富文本格式 (.rtf)
    • 富文本格式目录 (.rtfd.zip)
    • 09 年主题演讲 (.key)
    • Numbers '09 (.numbers)
    • Pages '09 (.pages)

    【讨论】:

      【解决方案2】:

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

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

      更新

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

      【讨论】:

        【解决方案3】:

        .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];  
        }
        

        【讨论】:

        • 我尝试将它存储为文件并按照您的描述加载它(由于 C#,我使用了另一个代码)。那并没有改变它。这与loadData 的行为相同。
        猜你喜欢
        • 2013-07-10
        • 2013-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        • 2012-01-19
        • 1970-01-01
        相关资源
        最近更新 更多