如何使用QLPreviewController打開並查看從Web服務獲取的文檔文件的URL。打開並查看文檔文件URL
1
A
回答
0
你不能這樣做。文檔可以很好地解釋這一點,但是,您想嘗試製作自己的查看器。祝你好運!
參見:
您可以作爲網站顯示:「創建和配置文檔交互控制器」
- (UIDocumentInteractionController *) setupControllerWithURL: (NSURL) fileURL
usingDelegate: (id <UIDocumentInteractionControllerDelegate>) interactionDelegate {
UIDocumentInteractionController *interactionController =
[UIDocumentInteractionController interactionControllerWithURL: fileURL];
interactionController.delegate = interactionDelegate;
return interactionController;}
「一旦你有一個文檔交互控制器,你可以使用其屬性獲取關於相關文件的信息,包括其名稱,類型和URL。「
0
- 顯示某種進度微調。
- 使用
URLSession
和URLSessionDownloadTask
將文件下載到您的~/documents
文件夾。 - 隱藏進度微調器。
- 然後,您需要創建一個實現
QLPreviewControllerDataSource
並保存文檔的類的實例。 隱藏進度微調和現在
QLPreviewController
import UIKit import QuickLook class Document: NSObject, QLPreviewItem { var previewItemURL: URL? } class PreviewDataSource: NSObject, QLPreviewControllerDataSource { var document: Document? func numberOfPreviewItems(in controller: QLPreviewController) -> Int { return document != nil ? 1 : 0 } func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem { return document! } } class ProgressLoadingViewController: UIViewController { var session: URLSession = URLSession(configuration: URLSessionConfiguration.default) var downloadTask: URLSessionDownloadTask? var dataSource: PreviewDataSource? override func viewDidLoad() { super.viewDidLoad() startDownload() } func startDownload() { // start progres spinner downloadTask = session.downloadTask(with: URL(string: "http://che.org.il/wp-content/uploads/2016/12/pdf-sample.pdf")!) { [weak self] (downloadLocation, response, error) in guard // check if download went correctly error != nil, let filename = response?.suggestedFilename, let downloadLocation = downloadLocation else { print("Something went wrong: \(error!)") return } // copy file let fileManager = FileManager.default let targetPath = URL(fileURLWithPath: filename, relativeTo: fileManager.temporaryDirectory) do { try fileManager.copyItem(at: downloadLocation, to: targetPath) } catch let fileError { print("Copying failed: \(fileError)") return } // prepare preview let document = Document() document.previewItemURL = targetPath self?.dataSource? = PreviewDataSource() self?.dataSource?.document = document let qlViewController = QLPreviewController() qlViewController.dataSource = self?.dataSource // hide progress spinner self?.present(qlViewController, animated: true) { self?.downloadTask = nil qlViewController.reloadData() } } downloadTask?.resume() } }
當然這漫長完成函數應該分成幾個,然後搬到了自己的類DocumentDownloadManager
。
+0
你能回答我的目標C嗎? @orkoden – monali
相關問題
- 1. 打開RTF文件並查看源
- 2. 查看Word文檔是否打開
- 3. 使用Google文檔查看器打開文檔(.doc,.pdf) - C#
- 4. 打開並查看和/或編輯檢查21圖像文件
- 5. 打開apache2查看靜態文件
- 6. 打開文件,圖像查看
- 7. 如何查看/打開此文件?
- 8. 打開Excel xlsx文件進行查看
- 9. 文檔查看器控件?
- 10. 文檔查看器控件
- 11. Google文檔查看器外部URL
- 12. Eclipse插件打開文檔
- 13. Codeigniter,打開並編輯網頁上的查看文件
- 14. 如何打開並查看Excel文件的XML結構?
- 15. 打印文檔和滾動查看器
- 16. android打開url的文件
- 17. 從Qt URL打開文件
- 18. 我可以打開Cookie文件並查看該文件中的內容嗎?
- 19. 模擬輸入並按下只要我打開Word文檔時打開文檔
- 20. 查看文檔TKinter
- 21. 用Google Docs打開文檔文件,Asp.Net
- 22. 從Android上的文檔打開文件
- 23. Webservice從App_Data文件夾打開文檔
- 24. .csv文件打開爲HTML文檔
- 25. 打開文件夾中的docx文檔
- 26. 使用XPS查看器打開FlowDocument作爲XPS文檔保存?
- 27. 打開/查看Android外部SD文件和文件夾
- 28. 打開'新'文檔?
- 29. 打開Word文檔
- 30. silverlight打開文檔
當然,你可以做到這一點。這很簡單。 – orkoden
是的,但創建你自己的腳本。沒有資源明確的語言。 –
查看我的回答以上https://stackoverflow.com/a/46451323/1329214 – orkoden