代码之家  ›  专栏  ›  技术社区  ›  Mugunth

uiWebView支持的文件格式

  •  12
  • Mugunth  · 技术社区  · 15 年前

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

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

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

    uiWebView文档也没有清楚地说明它。

    有人能帮忙吗?

    3 回复  |  直到 7 年前
        1
  •  14
  •   testing    7 年前

    技术说明见 Apple Website 关于支持的文件格式 UIWebView :

    自从 iPhone操作系统2.2.1

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

    自从 iPhone OS 3

    • RTF格式(.rtf)
    • 富文本格式目录(.rtfd.zip)
    • 主题演讲'09(.key)
    • 数字'09(.numbers)
    • 第'09页(.pages)
        2
  •  2
  •   Thomas Tempelmann    12 年前

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

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

    更新

    呃,实际上,这是苹果公司的文档,关于uiwebview支持的图像格式: http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/GraphicsandDrawing/GraphicsandDrawing.html#//apple_ref/doc/uid/TP40007072-CH10-SW8

        3
  •  1
  •   aatwo    13 年前

    .rtf文件显然是受支持的,但我无法让uiwebview正确显示它们。它可以正确地格式化文本(大小、颜色、字体等),但图像只是普通的没有渲染(我尝试了.gif、.png和.jpg,但没有效果)。很可能你会遇到使用.rtf的麻烦,你可能希望在uiwebview中显示图像,因为rtf的主要好处是你可以将图像嵌入到文件中。这是在实际的ipad 1(4.3)和模拟的iphone(4.3)上尝试的。

    在uiwebview中显示rtf所完成的代码要求将rtf写入具有rtf文件扩展名的文件。如果不使用文件扩展名或不正确的扩展名,它将拒绝加载该文件,因此请确保将其写为.rtf。

    这是一个目标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];  
    }