- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们的 iPad 应用程序可以显示文档并在需要时离线保存它们。我有一个名为 DocumentViewController(从现在开始命名为 DVC)的 QLPreviewController 子类用于显示它们。
应用程序的工作流程:- 用户点击文档名称,DVC 被推送以显示该文档。- DVC 离线下载文件并在完成后显示。 (所以下载HTTP URL,离线存储,返回一个离线URL)
奇怪的是,只有 PDF 文件可以使用离线 URL,其余的会崩溃..(尽管它可以使用在线链接)
我做了一些测试,当我将 file://放在离线链接之前时,应用程序不会崩溃,但 DVC 会给我一些关于该文件的信息(比如它是一个 excel 97-2004 文档)。
因此传输了一些信息,但我无法弄清楚问题是什么。
这里是一些截图,然后是一些代码。
代码:请注意,Document 是一个模型类,具有 id、名称、文件类型和 url 等文档属性。
//DVC QLPreviewController dataSource method for returning url
- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger)index
{
[SaveHelper saveDocumentFileAndPropertyWithDocument:document];
//[SaveHelper getDocumentFileWithDocument:document]; without file://
//if I return document.documentUrl it is working with all files except iworks files)
return [SaveHelper getDocumentFileAsPathWithDocument:document]; //with file://
}
//SaveHelper methods
+ (NSString *)documentFilePathWithDocument:(Document *)document
{
return [[self documentFilePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%d.%@", DOCUMENT_FILE_PREFIX, document.documentId, document.documentType]];
}
+ (NSURL *)saveDocumentFileAndPropertyWithDocument:(Document *)document
{
if([self saveDocumentPropertyWithDocument:document])
{
return [self saveDocumentFileWithDocument:document];
}
return nil;
}
+ (NSURL *)saveDocumentFileWithDocument:(Document *)document
{
NSData *data = [NSData dataWithContentsOfURL:document.documentURL];
NSString *fullPath = [self documentFilePathWithDocument:document];
if([[NSKeyedArchiver archivedDataWithRootObject:data] writeToFile:fullPath atomically:YES])
{
return [NSURL fileURLWithPath:fullPath];
}
return nil;
}
+ (NSURL *)getDocumentFileWithDocument:(Document *)document
{
return [NSURL fileURLWithPath:[self documentFilePathWithDocument:document]];
}
+ (NSURL *)getDocumentFileAsPathWithDocument:(Document *)document
{
return [NSURL fileURLWithPath:[@"file://" stringByAppendingPathComponent:[[self getDocumentFileWithDocument:document] absoluteString]]];
}
如果需要更多代码,请直接说。
编辑:
当记录通过“getDocumentFileAsPathWithDocument”方法传递的 URL 时:
url: file:/var/mobile/Applications/xx-xx/Documents/documentFiles/file_20.pdf
url: file:/var/mobile/Applications/xx-xx/Documents/documentFiles/file_80.docx
PDF 文件有效而 docx 无效
当我尝试从本地存储加载图像 (jpg) 时出现黑屏并显示此错误消息:
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3.5 (8L1)/Symbols/System/Library/Frameworks/QuickLook.framework/DisplayBundles/Image.qldisplay/Image (file not found).
warning: No copy of Image.qldisplay/Image found locally, reading from memory on remote device. This may slow down the debug session.
编辑:
webview 不适用于本地 url。 PDF 没问题,但 office 文件会显示一条消息“无法读取文档,文件格式无效”。 iWorks 文档给出与 quicklook 相同的错误。我认为它在保存和加载格式的某个地方,我将它们保存为 NSDATA 但之后没有提示让 iPad 查看它是否是一个 word 文档(仅扩展名)。
最佳答案
您还没有发布您的下载代码,但我相信问题就在那里。 Pages 中的文件(.pages 扩展名)不是实际文件,它们是包,即包含文件并在 Finder 中显示为单个项目的目录(在 Finder 中查找 .pages 文件,对-单击它并选择“显示内容”)。下载 .pages 文件实际上就像下载一个目录:它取决于 Web 服务器您得到什么样的结果,但它很可能是一个错误页面。
您可以检测到它是一个 .pages 文件并尝试手动下载其所有内容,但是您必须研究文件的结构以查看是否可行,因为您不太可能请求来自 Web 服务器的目录。
.ppt 和 .xls 文件的结果对我来说看起来很正常;我认为 iPad 根本不可能预览 MS Office 文档。
编辑:抱歉,我刚读到 iOS 可以预览 MS Office 文档。也许文件在下载过程中以某种方式损坏了?您是否尝试将下载位置设置为应用程序的文档文件夹并启用 iTunes 文件共享?通过这种方式,您可以下载一些文档,将它们从您的设备中取出,然后尝试在您的 PC 上打开它以查看是否有效。
关于iphone - 如何让 QuickLook 显示脱机文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7038438/
谁能指出我使用 QuickLook 在不使用 UITableView 的情况下打开(最好但不一定是 pdf)文件的资源? 我确实有这个使用 QuickLook 的示例,但它使用了我需要远离的 List
我有一个 NSTableView,其中包含 2 个不同的列 - 一个是显示文件图标的 NSImageCell,第二个是 NSTextFieldCell 的自定义子类,其中在文本右侧包含一个快速查看按钮
我正在尝试创建一个 QuickLook 插件来播放包内的音频,以实现该包的 QuickLook 预览,但我的尝试仅显示默认的 QL 预览 - 较大的文件图标、文件名、类型、大小和修改日期。 我已经使用
我有这门课,效果很好 导入 UIKit导入 QuickLook class ViewController: UITableViewController, QLPreviewControllerData
我正在使用 quicklook 预览本地保存的图像。当我运行该应用程序时,quicklook 读取了正确的文件并具有正确的图像内存,但不进行预览。它向我展示了这样的东西。 在我的代码中,我将一个 NS
我正在使用 Quicklook 来显示一些 PDF 文件,用户只需要查看文件,然后单击“完成”。默认 UI 提供更多选项,例如复制或打印电子邮件。此外,用户界面在完成按钮旁边显示箭头,可以导航到其他可
我正在使用“QLPreviewController”来显示文档文件 (pdf/doc)。有什么方法可以获取总页数和当前页码吗? 或查看 pdf/doc 并获取页数的任何其他方式。 像“9 of 9”-
前言 今天给大家推荐一款由C#开源且免费的Windows桌面快速预览神器:QuickLook。 工具介绍 QuickLook是一款在Windows操作系统上的实用工具,它提供了一种
我正在编写一个 Quick Look 插件,它可以为 ogg 等一些音频文件生成预览。和 flac通过使用 ffmpeg 将它们转换为 AIFF然后返回一个带有 的简约网页引用转换后的 AIFF 文
我正在为 MPO 文件编写一个快速查看插件。 该插件并不是什么大问题,但问题在于尝试调试它。苹果文档说要调试你使用 qlmanage -r 我有。但是,我的断点都不匹配。我认为这是因为它与我的 Qu
我正在使用 Storyboard使用 Swift 编写 macOS 应用程序。我有一个 NSTableView,其中包含我希望用户能够通过 QuickLook 预览的文件。 我似乎一切就绪,我的代码看
我正在使用 QLPreviewController 预览各种文档。 Controller 有一个“ ListView ”选项,它显示 Controller 中所有文档的图像和标题。 如何获取该图像以便
我们的 iPad 应用程序可以显示文档并在需要时离线保存它们。我有一个名为 DocumentViewController(从现在开始命名为 DVC)的 QLPreviewController 子类用于
来自 quicklook 的文档: "The consumer portion of Quick Look has three components: a document reader (consi
OSX 的 Quicklook 呈现 HTML(使用插件/System/Library/Quicklook/Web.qlgenerator)。我希望看到纯文本,就像我将 .html 重命名为 .txt
我正在使用 Quick Look Framework 进行附件预览,需要在启动 QLPreviewController 之前标记不受支持的文件。我能否以编程方式检查 QuickLook 是否真的会预览
我想使用 Quicklook 预览应用中的一些文档。 有一个 fileUrls 数组,我想在 UITableView 中显示所有文件名。当用户单击文件名时,将加载所选文件。 这里的问题是,委托(del
我想编辑 PDF 并将其保存在 IOS 应用程序中。是否可以用 QuickLookController 来做到这一点? ? 有人知道我该怎么做吗? 最佳答案 Apple's QuickLook Fra
我在我的应用程序中添加了 QuickLook 以显示文档目录中的文档、pdf 等,它在模拟器中工作正常但在 iPad 中它只显示文件名作为标题和灰色屏幕而不是 pdf 页面,不知道出了什么问题这里有代
我目前正在编写一个 QuickLook 插件,我想知道如何同时显示图像和有关该图像的一些信息,类似于 http://www.code-line.com/software/sneakpeekphoto/
我是一名优秀的程序员,十分优秀!