如何显示来自文件流的pdf数据
How to show pdf data from a filestream
我正在与 REST API
打交道,您可以在其中拨打电话,然后接收图片或 pdf。我正在使用 URLSession.shared.dataTask
进行调用,当有图像时调用成功(但需要相当长的时间,超过 5 秒)并且我可以在 UIImageView
中显示图像.但是当有pdf时,我不知道如何处理结果。 API returns 图像/pdf 作为“文件流”。
当我将数据打印到控制台时,它会打印大小(字节)并且与服务器中的大小相同,所以在某种程度上我有正确的数据,我只是不知道如何查看 pdf .
我正在使用 swift 3,iOS 10,xcode 8。
首先你可能想把你的问题分为两部分。请编辑再问第二部分
本主题分为两部分
1.下载 PDF 并将其保存在文件系统中
2。获取保存在文件系统中的 pdf 并使用 UIWebView
或 UIDocumentInteractionController
阅读它
那么,我就第一个解释一下吧。
如果您使用 REST HTTP 客户端,则可以完成第一个:Alamofire : Elegant HTTP Networking in Swift。所以在这种情况下不需要使用 URLSession
,如果你这样做,你将不得不写这么多行。它简单易行。所以,我想让你试试看。如果您需要 URLSession
,请发表评论。
那么如何使用Alamofire
下载pdf:
let destination: DownloadRequest.DownloadFileDestination = { _, _ in
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
//.documentDirectory means it will store in Application Document Folder
let fileURL = documentsURL.appendPathComponent("data.pdf")
return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
}
Alamofire.download(urlString, to: destination).response { response in
print(response)
if response.error == nil, let filePath = response.destinationURL?.path {
// do anything you want with filePath here.
// Here what you have to do Step 2. (Read the file that you downloaded)
}
}
此下载过程不包括使用编码参数请求下载 link。方法很简单。
我正在与 REST API
打交道,您可以在其中拨打电话,然后接收图片或 pdf。我正在使用 URLSession.shared.dataTask
进行调用,当有图像时调用成功(但需要相当长的时间,超过 5 秒)并且我可以在 UIImageView
中显示图像.但是当有pdf时,我不知道如何处理结果。 API returns 图像/pdf 作为“文件流”。
当我将数据打印到控制台时,它会打印大小(字节)并且与服务器中的大小相同,所以在某种程度上我有正确的数据,我只是不知道如何查看 pdf .
我正在使用 swift 3,iOS 10,xcode 8。
首先你可能想把你的问题分为两部分。请编辑再问第二部分
本主题分为两部分
1.下载 PDF 并将其保存在文件系统中
2。获取保存在文件系统中的 pdf 并使用 UIWebView
或 UIDocumentInteractionController
那么,我就第一个解释一下吧。
如果您使用 REST HTTP 客户端,则可以完成第一个:Alamofire : Elegant HTTP Networking in Swift。所以在这种情况下不需要使用 URLSession
,如果你这样做,你将不得不写这么多行。它简单易行。所以,我想让你试试看。如果您需要 URLSession
,请发表评论。
那么如何使用Alamofire
下载pdf:
let destination: DownloadRequest.DownloadFileDestination = { _, _ in
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
//.documentDirectory means it will store in Application Document Folder
let fileURL = documentsURL.appendPathComponent("data.pdf")
return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
}
Alamofire.download(urlString, to: destination).response { response in
print(response)
if response.error == nil, let filePath = response.destinationURL?.path {
// do anything you want with filePath here.
// Here what you have to do Step 2. (Read the file that you downloaded)
}
}
此下载过程不包括使用编码参数请求下载 link。方法很简单。