不久前,我对此进行了广泛的研究,但找不到一种简单的方法。根据文件的类型,QuickLook 会生成不同类型的输出。例如,对于 iWork 文件,生成器生成在 WebView 中显示的 HTML。对于其他类型,它返回不同类型的数据。
我从来没有最终使用过这些代码,但这里有一些我挖出来的代码和一些可能很方便的私有 API:
id QLPreviewCreate(CFAllocatorRef allocator, CFURLRef url, CFDictionaryRef options);
id QLPreviewCopyBitmapImage(id preview);
id QLPreviewCopyData(id preview);
NSString* QLPreviewGetPreviewType(id preview);
id QLPreviewCopyProperties(id preview);
- (NSData *)getDataForFile:(NSString *)path
{
NSURL *fileURL = [NSURL fileURLWithPath:path];
id preview = QLPreviewCreate(kCFAllocatorDefault, fileURL, 0);
if (preview)
{
NSString* previewType = QLPreviewGetPreviewType(preview);
if ([previewType isEqualToString:@"public.webcontent"])
{
// this preview is HTML data
return QLPreviewCopyData(preview);
}
else
{
NSLog(@"this type is: %@", previewType);
// do something else
}
}
return nil;
}