2016-08-22 6 views
1

Я пытаюсь открыть файл .pdf после загрузки, который загружается с Alamofire. Но я видел только использование «webview». Таким образом, приложение потребляет много памяти и не является жизнеспособным.Как открыть файл в iOS?

Я хочу открыть его с помощью приложения для родного устройства. Какие-либо предложения? Спасибо.

Edit: Это мой код для загрузки файла:

var localPath: NSURL? 

    Alamofire.download(.GET, url, destination: { (temporaryURL, response) in 
    let directoryURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] 
    let pathComponent = response.suggestedFilename 
    localPath = directoryURL.URLByAppendingPathComponent(pathComponent!) 
    return localPath! 
    }) 
    .response { (request, response, _, error) in 

    if error != nil 
    { 
    // got an error in getting the data, need to handle it 
    print("Error: \(error!)") 

    } 

    //print(response) 
    print("Download file en:\(localPath!)") 

    self.view.hideToastActivity() 
    //self.actioncall() 

    } 

} 

мне нужно открыть файл с LocalPath ...

+0

Слышал о UIDocumentInteractionController когда-либо ?? Если не попробуйте его прочитать. Я считаю, что вам нужно :) Счастливое кодирование :) –

+0

Вы должны показать, что вы сделали уже. –

+0

обновление op. Я буду читать @SandeepBhandari – FireUser

ответ

1

Вы должны использовать UIDocumentInteractionController. Вы можете прочитать об этом на странице документации this.

Выполняя некоторые действия в Google, вы должны увидеть даже некоторые примеры реализации. Например, here вы можете увидеть некоторый код об этом, сделанный «mattneub».

Я дал вам еще один код, который вы можете использовать:

var documentInteractionController: UIDocumentInteractionController! 

@IBAction func openDocument(sender: UIButton) { 
    let URL: NSURL = NSBundle.mainBundle().URLForResource("yourPDF", withExtension: "pdf")! 

    if (URL != "") { 
     // Initialize Document Interaction Controller 
     self.documentInteractionController = UIDocumentInteractionController(URL: URL) 

     // Configure Document Interaction Controller 
     self.documentInteractionController.delegate = self 

     // Present Open In Menu 
     self.documentInteractionController.presentOptionsMenuFromRect(sender.frame, inView: self.view, animated: true) 
      //presentOpenInMenuFromRect 
    } 
} 

// UIDocumentInteractionControllerDelegate 
func documentInteractionControllerViewControllerForPreview(controller: UIDocumentInteractionController) -> UIViewController { 
    return self 
} 
+0

Работает ли это с локальным маршрутом alamofire? – FireUser

+1

Да, он также работает с localpath. –

+0

crash в этой строке: пусть URL: NSURL = NSBundle.mainBundle(). URLForResource («yourPDF», withExtension: «pdf»)! ... error: фатальная ошибка: неожиданно найден nil при развертывании необязательного значения ... thread 1 exc_bad_instruction (code = exc_i386_invop subcode = 0x0) – FireUser

Смежные вопросы