Как отобразить файлы .doc на языке QLPreviewController swift - PullRequest
0 голосов
/ 18 мая 2019

Я новичок в разработке ios, я пытаюсь отобразить файл в другом формате (например, docx, doc, pdf, csv), он отлично работает с файлами .pdf, но для файлов .doc предварительный просмотр невозможен. введите описание изображения здесь

Это то, что показывается в симуляторе

Для некоторых .doc файлов и pdf это работает !! 1

код:

override func viewDidLoad() {
    super.viewDidLoad()
}
@IBAction func handlePress(){

    let previewController = QLPreviewController()
    previewController.dataSource = self
    present(previewController, animated: true)
}
func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
    return 3
}
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
    guard let url = URL(string: "**urlpath**/q.DOC") else {
       fatalError("Could not load")
    }

    return url as QLPreviewItem
}

1 Ответ

0 голосов
/ 18 мая 2019

Сначала вам нужно скачать файл и сохранить в локальном хранилище.И еще одна вещь, .do файл не допускается.Поэтому вы должны убедиться, что ваш файл .docx или .pdf.

. Вы можете попробовать этот способ:

func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {

    // ---- First way -----
    guard let strPath =  Bundle.main.path(forResource: "demo.docx", ofType: nil) else { return "" as! QLPreviewItem }
    //guard let strPath =  Bundle.main.path(forResource: "demo", ofType: "docx") else { return "" as! QLPreviewItem }
    let filePath = "file://\(strPath)"
    let url = URL(string: filePath)

    // ---- Second way -----
    guard let strPath =  Bundle.main.path(forResource: "demo.docx", ofType: nil) else { return "" as! QLPreviewItem }
    //guard let strPath =  Bundle.main.path(forResource: "demo", ofType: "docx") else { return "" as! QLPreviewItem }
    let url = URL(fileURLWithPath: strPath)

    return url as QLPreviewItem
}

.docx file display on iPhone

...