Как загрузить PDF-файл в swift и найти в файловом менеджере

#ios #swift #pdf #preview #downloadfile

#iOS #swift #PDF #Предварительный просмотр

Вопрос:

Я загрузил PDF-файл, используя приведенный ниже код. Я могу найти файл в контейнере данных приложения, но для контейнера данных приложения моему устройству нужен Mac, x code или iTunes и т.д.

Могу ли я указать путь к документам или другое место для поиска PDF-файла в файлах iPhone? У меня есть возможность открыть файл с помощью iBook, но его там нет.

Мой код для загрузки файла находится здесь:

 func downloadFile(){
        let url = "https://www.tutorialspoint.com/swift/swift_tutorial.pdf"
        let fileName = "MyFile"
        
        savePdf(urlString: url, fileName: fileName)
      
    }

    func savePdf(urlString:String, fileName:String) {
            DispatchQueue.main.async {
                let url = URL(string: urlString)
                let pdfData = try? Data.init(contentsOf: url!)
                let resourceDocPath = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last! as URL
                let pdfNameFromUrl = "YourAppName-(fileName).pdf"
                let actualPath = resourceDocPath.appendingPathComponent(pdfNameFromUrl)
                do {
                    try pdfData?.write(to: actualPath, options: .atomic)
                    print("pdf successfully saved!")
    //file is downloaded in app data container, I can find file from x code > devices > MyApp > download Container >This container has the file
                } catch {
                    print("Pdf could not be saved")
                }
            }
        }
  

Ответ №1:

Настройте свое приложение так, чтобы его файлы отображались в приложении Files, добавив в свой Info.plist файл приведенные ниже строки.

 <key>UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
  

или

Точно так же, как показано ниже, используя Xcode

введите описание изображения здесь

Примечание: Помните, что вы должны работать под управлением iOS 11 или выше.

Комментарии:

1. Спасибо @Prakash Shiva, который работал с swift, можете ли вы помочь мне сделать то же самое в objective c, я пытался, но там это не сработало

2. как я могу скрыть нежелательные параметры из UIDocumentInteractionController, появившегося в этом примере, в настоящее время он показывает параметры: Копировать, разметка, печать, addTag, сохранить файл, но я хочу показать только опцию «Сохранить файл»

3. Где вы внедряете UIDocumentInteractionController в свой код??

4. Кстати, вам не нужен UIDocumentInteractionController в соответствии с требованием, которое вы упомянули в своем вопросе.

5. Я задаю примерно тот же вопрос, для которого вы предоставили мне решение, реализованное в том же коде, что и в моем вопросе, а затем я добавил изменения в pList в качестве вашего руководства, которые показывают мне UIDocumentInteractionController, теперь я хочу настроить это