我有Open-in
各种文档类型的应用程序设置。例如,用户在我的应用程序中打开一个 PDF,然后我让他们选择他们想要放入的文件夹并将其上传到我的服务器,而不是显示它。我正在获取 url,将其转换为 NSData 并将其上传到我的服务器(效果很好)。
然后,当他们想稍后查看文件时,我从我的服务器中提取 NSData ......这就是我卡住的地方。如何获取该 NSData 对象并从我的应用程序中向用户显示内容?谢谢你。
我有Open-in
各种文档类型的应用程序设置。例如,用户在我的应用程序中打开一个 PDF,然后我让他们选择他们想要放入的文件夹并将其上传到我的服务器,而不是显示它。我正在获取 url,将其转换为 NSData 并将其上传到我的服务器(效果很好)。
然后,当他们想稍后查看文件时,我从我的服务器中提取 NSData ......这就是我卡住的地方。如何获取该 NSData 对象并从我的应用程序中向用户显示内容?谢谢你。
使用 UIWebView 显示包含 PDF 的 NSData
[self.webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
Web 视图可以显示不同的数据。
您要么必须为您计划支持的每种类型的文档包括视图支持,要么将该任务交给另一个应用程序,该应用程序可以使用 UIDocumentInteractionController 为您完成。
有关更多信息,请参阅iOS 文档交互编程主题。
如果服务器不需要任何用户/密码挑战,您可以这样做
NSURL*url=[NSURL URLWithString:@"your url goes here"];
NSData*data=[NSData dataWithContentsOfURL:url];
您还可以使用 NSURLRequest 更好地控制您的下载,并使用它的委托方法实现 NSURLConnection 类
如果您使用 NSURLConnection 实现 NSURLRequest 您可以挑战用户/密码
对于大型内容,您可以使用类方法
+ sendAsynchronousRequest:queue:completionHandler:
要从 NSData 创建 pdf 文档,您可以执行以下操作:
CFDataRef myPDFData = (CFDataRef)data;
CGDataProviderRef provider= CGDataProviderCreateWithCFData(myPDFData);
CGPDFDocumentRef pdf= CGPDFDocumentCreateWithProvider(provider);
data 是你收到的数据