iphone – 使用QuickLook框架或UiDocumentInteractionController显示加密文件

iphone – 使用QuickLook框架或UiDocumentInteractionController显示加密文件,第1张

概述我在本地存储了加密的word / excel / pdf文件,我需要在我的iPad应用程序中预览.我知道QLPreviewController或UiDocumentInteractionController可用于预览这些文件.我很好用这个 - (id <QLPreviewItem>) previewController: (QLPreviewController *) controller pre @H_419_0@ @H_419_0@ 我在本地存储了加密的word / excel / pdf文件,我需要在我的iPad应用程序中预览.我知道QLPrevIEwController或UidocumentInteractionController可用于预览这些文件.我很好用这个

- (ID <QLPrevIEwItem>) prevIEwController: (QLPrevIEwController *) controller prevIEwItemAtIndex: (NSInteger) index {    return [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[documents objectAtIndex:index] ofType:nil]];}

但是文件是加密的,当我解密它时,我会得到NSData对象.我如何在其中任何一个中加载NSData.

另外我理解我可以很好地将NSData存储为本地文件并将其加载到预览中.但是存在不在本地存储未加密文件的限制.

如果某人已经完成了这项工作并且可以帮助我,我们将不胜感激.

谢谢
AJ

解决方法 由于您使用的是快速查看,因此您的选项有限.您必须为Quick Look提供NSURL,这意味着它必须位于文件系统(或Internet)上.幸运的是,这应该不是什么大问题. iOS设备使用硬件级加密.当您的文件被加密时,只有您的应用程序具有解密它的密钥.因此,您的文件仍会加密,但您的应用程序和您的应用程序也可以读取它.

这是你做的:

>将文件解密为NSData对象,您已经完成了该 *** 作.
>将文件写入不会上传到iCloud或iTunes备份的位置. tmp目录可能是最好的选择.代码看起来像这样:

NSData * data = // Your decrypted file data.Nsstring * filename = // Whatever you want to name your file.Nsstring * path = [NstemporaryDirectory() stringByAppendingPathComponent:filename];NSURL * url = [NSURL URLWithString:path];NSError * error = nil;BOol success = [data writetoURL:url                        options:NSDataWritingfileProtectionComplete                          error:&error];if (success) {    // Give the URL to Quick Look.}else {    // An error happened. See the 'error' object for the details.}

此时您有一个NSURL,您可以使用快速查看.完成后,请不要忘记删除已解密的文件.

有关磁盘加密的一些注意事项:

>它仅在iOS 4.0上受支持.
>它可能不适用于“旧”设备.
>用户必须拥有有效的密码.
>如果使用NSDataWritingfileProtectionComplete,则在设备锁定时无法访问该文件.如果您需要在应用程序被锁定时访问该文件,则应使用NSDataWritingfileProtectionCompleteUnlessOpen或NSfileProtectionCompleteUntilFirstUserAuthentication.即使设备被盗和越狱,这仍然会给你很大的保护.但请注意,这些加密选项仅适用于iOS 5.0

有关磁盘加密的更多详细信息,请查看iOS App Programming Guide

@H_419_0@ 总结

以上是内存溢出为你收集整理的iphone – 使用QuickLook框架或UiDocumentInteractionController显示加密文件全部内容,希望文章能够帮你解决iphone – 使用QuickLook框架或UiDocumentInteractionController显示加密文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1083634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存