Как просмотреть файл PDF с моего iphone для моего приложения, так же, как я могу просматривать файл PDF через ibooks? - PullRequest
0 голосов
/ 15 февраля 2019

Точно так же, как просмотр UIIMage с использованием UIImagePickerViewController.Есть ли способ просмотреть другие файлы в Swift / объективный код?

if let fileURL = NSBundle.mainBundle().URLForResource("MyImage", withExtension: "jpg") {
            // Instantiate the interaction controller
            self.docController = UIDocumentInteractionController(URL: fileURL)
        }
        else {
            shareButton.enabled = false
            print("File missing! Button has been disabled")
        }

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Если вы хотите просматривать PDF-файлы в вашем приложении, есть два способа.

PDFView - доступно iOS 11.0

let pdfDocument = PDFDocument(url: url)
pdfView.document = pdfDocument

WKWebView - доступно iOS 8.0

webView.loadRequest(URLRequest.init(url: url))

Вы также можете использовать UIWebview для получения того же результата, но он устарел.

В качестве альтернативы, используйте библиотеку файлового проводника, которую можно настроить натебе нужно сделать.Что-то вроде это

https://developer.apple.com/documentation/pdfkit/pdfview https://developer.apple.com/documentation/webkit/wkwebview

0 голосов
/ 15 февраля 2019

Вы можете получить доступ только к файлам в папке с документами.Для доступа ко всем файлам

let fileManager = FileManager.default
let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0]
do {
    let fileURLs = try fileManager.contentsOfDirectory(at: documentsURL, includingPropertiesForKeys: nil)
    // process files
} catch {
    print("Error while enumerating files \(documentsURL.path): \(error.localizedDescription)")
}

и, если вы хотите, чтобы один файл, посмотрите следующий код:

// Get the document directory url
let documentsUrl =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

do {
    // Get the directory contents urls (including subfolders urls)
    let directoryContents = try FileManager.default.contentsOfDirectory(at: documentsUrl, includingPropertiesForKeys: nil, options: [])
    print(directoryContents)

    // if you want to filter the directory contents you can do like this:
    let mp3Files = directoryContents.filter{ $0.pathExtension == "mp3" }
    print("mp3 urls:",mp3Files)
    let mp3FileNames = mp3Files.map{ $0.deletingPathExtension().lastPathComponent }
    print("mp3 list:", mp3FileNames)

} catch {
    print(error.localizedDescription)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...