Ios 如何用QLViewController swift语言显示.doc文件

Ios 如何用QLViewController swift语言显示.doc文件,ios,swift,doc,qlpreviewcontroller,Ios,Swift,Doc,Qlpreviewcontroller,我是ios开发的新手,我正在尝试以不同的格式显示文件(例如.docx、doc、pdf、csv),它可以很好地处理.pdf文件,但对于.doc文件它不能预览 这就是在模拟器中显示的内容 对于一些.doc文件和pdf,它可以工作!!一, 代码: override func viewDidLoad() { super.viewDidLoad() } @IBAction func handlePress(){ let previewController = QLPreviewContr

我是ios开发的新手,我正在尝试以不同的格式显示文件(例如.docx、doc、pdf、csv),它可以很好地处理.pdf文件,但对于.doc文件它不能预览

这就是在模拟器中显示的内容

对于一些.doc文件和pdf,它可以工作!!一,

代码:

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
}

首先,您需要下载文件并保存在本地存储中。还有一件事是
。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
}

编辑您的问题并发布代码。您是否尝试过使用其他word文档文件?URL(字符串:)初始值设定项通常用于远程URL。如果您的文档url不是文件url,则需要首先下载远程资源的可能副本