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. Asp.netのコアページビューでRTFドキュメントファイルを表示する方法cshtml
- 2. URLに基づいてHTMLコードを表示するか非表示にする
- 3. URLを開くときにナビゲーションバーを表示したいiPhone
- 4. URLに投稿して新しいウィンドウを開いてpdfの応答を表示するには
- 5. DIVの内容URLに基づいて非表示/表示
- 6. トーストを表示するWHILEダイアログが開いていますか?
- 7. Watson Discovery Serviceを使用してドキュメントファイルのURLを取得するにはどうすればよいですか?
- 8. URLの開始と終了に基づいてリダイレクトする正規表現URL
- 9. xamppフォルダのないURLを表示するXAMPPのページURL
- 10. URLに基づいて部分ビューを表示する
- 11. テキストを.docxドキュメントファイルに変換して共有ダイアログ(Swift 2)を開きます。
- 12. iOSデフォルトのドキュメントファイル
- 13. 経路を表示しないでCarrierwave URLを表示
- 14. Firefox開発ツールのコンソールタブで完全なURI/URLを表示
- 15. コンボボックスで開いているすべてのシートを一覧表示する
- 16. テキストファイルを開いてリッチテキストエリアに表示するには
- 17. JTextAreaのファイルデータを開いて表示する
- 18. WinFormsアプリケーションでHD写真を開いて表示する
- 19. ブートストラップアコーディオンはアコーディオンを開いて表示する
- 20. introjsモーダルウィンドウを開いて強調表示するmd-dialog
- 21. iOSでデバイスのドキュメントファイルをプログラムで開く方法
- 22. HTML FirefoxのブラウザでURLを開いてHTML 5のコンテンツを表示する方法
- 23. は、私はURLでの表示名に無効を持っているURL
- 24. Oracleで開いているトランザクションを表示
- 25. オーバーレイが開いているときにフレックススライダーを表示
- 26. 開いているファイルのテキストを表示
- 27. アンドロイドでアクションビューを使用して開かれたURLを非表示
- 28. ポート番号を表示しているURLの問題
- 29. アドレスバーに表示されているURLを取得
- 30. JavaのURLを開いて閉じる
もちろんできます。それはかなり簡単です。 – orkoden
はい、独自のスクリプトを作成します。リソースが明示的に言語を追加することなく –
上記の私の答えを参照してください。https://stackoverflow.com/a/46451323/1329214 – orkoden