2016-11-14 2 views
0

Каковы мои альтернативы для загрузки PDF-файла из Интернета и просмотра его позже вне приложения?Сохраните файл PDF локально и сможете просмотреть его вне приложения

На данный момент я загружаю его и показываю его в UIWebView, но я хочу, чтобы его можно было скачать в другом месте.

NSURL *yourURL = [NSURL URLWithString:self.currentInventoryOfFixtures.pdf.url]; 
NSURLRequest *request = [NSURLRequest requestWithURL:yourURL]; 
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 
     documentsURL = [documentsURL URLByAppendingPathComponent:@"file.pdf"]; 

[data writeToURL:documentsURL atomically:YES]; 

Я имею в виду использовать UIActivityController и дать пользователю возможность отправить его на адрес электронной почты.

+0

Что вопрос в использовании UIActivitycontroller – Vinodh

+0

У меня есть кнопка загрузки в приложении, которое имеет те цель выполнения всей работы. – Meeshoo

+0

Что значит «скачать его в другом месте»? Файловая система iOS изолирована песочницей. – Gruntcakes

ответ

0

После загрузки файла PDF, и имеющий путь этого файла, вы можете использовать UIActivityViewController таким образом:

let fileSaved = downloadedFilePath() //Already Downloaded File Path 

if let data = NSData(contentsOfFile: fileSaved) { 
    let dataToShare = [data] 
    let activityViewController = UIActivityViewController(activityItems: dataToShare, applicationActivities: nil) 

    activityViewController.completionWithItemsHandler = {(string: String?, result: Bool, items: [AnyObject]?, error:NSError?) -> Void in 
     print("Completed") 
    } 

    if #available(iOS 9.0, *) { 
     activityViewController.excludedActivityTypes = [ 
      UIActivityTypePostToFacebook, 
      UIActivityTypePostToTwitter, 
      UIActivityTypePostToWeibo, 
      UIActivityTypeAssignToContact, 
      UIActivityTypePostToFlickr, 
      UIActivityTypePostToVimeo, 
      UIActivityTypePostToTencentWeibo, 
      UIActivityTypeCopyToPasteboard 
     ] 
    } 
    self.presentViewController(activityViewController, animated: true, completion: nil) 
}