【发布时间】:2010-11-22 03:45:30
【问题描述】:
UIWebView 支持的所有文件格式有哪些? 在我的测试中,我发现它支持 XLS、DOC、PPT、PDF 但不支持 XLSX 和 DOCX、RTF。
它支持图片文件,如 JPG、PNG、GIF、BMP,不确定 TIFF 或
确切地说,所有类型都支持什么还不清楚……
UIWebView 文档也没有明确说明。
有人可以帮忙吗?
【问题讨论】:
标签: iphone cocoa-touch uiwebview
UIWebView 支持的所有文件格式有哪些? 在我的测试中,我发现它支持 XLS、DOC、PPT、PDF 但不支持 XLSX 和 DOCX、RTF。
它支持图片文件,如 JPG、PNG、GIF、BMP,不确定 TIFF 或
确切地说,所有类型都支持什么还不清楚……
UIWebView 文档也没有明确说明。
有人可以帮忙吗?
【问题讨论】:
标签: iphone cocoa-touch uiwebview
Apple Website 上提供了关于UIWebView 支持的文件格式的技术说明:
自iPhone OS 2.2.1
自iPhone OS 3.0
【讨论】:
我也在寻求一个明确的答案。
虽然技术说明告诉我们支持哪些高级格式,但它没有告诉我们哪些简单格式,例如图像类型,受支持。不过,我需要这些信息,以便让 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
【讨论】:
.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];
}
【讨论】:
loadData 的行为相同。