2010-02-09 16 views
23

Soy capaz de ver con éxito un PDF desde un sitio web. Quiero poder descargar ese PDF al dispositivo, luego acceder a ese archivo localmente.¿Cómo descargar PDF y almacenarlo localmente en el iPhone?

Cuando se abre la aplicación, se verificará la fecha del PDF en línea. Si es más nuevo que el PDF almacenado localmente, la aplicación descargará el nuevo, de lo contrario, se abrirá el PDF almacenado localmente.

El código que estoy usando actualmente:

PDFAddress = [NSURL URLWithString:@"http://www.msy.com.au/Parts/PARTS.pdf"]; 
request = [NSURLRequest requestWithURL:PDFAddress]; 
[webView loadRequest:request]; 
webView.scalesPageToFit = YES; 

¿Cómo soy capaz de lograr esto?

Respuesta

45

he encontrado un método que probé a mí mismo:

// Get the PDF Data from the url in a NSData Object 
NSData *pdfData = [[NSData alloc] initWithContentsOfURL:[ 
    NSURL URLWithString:@"http://www.example.com/info.pdf"]]; 

// Store the Data locally as PDF File 
NSString *resourceDocPath = [[NSString alloc] initWithString:[ 
    [[[NSBundle mainBundle] resourcePath] stringByDeletingLastPathComponent] 
     stringByAppendingPathComponent:@"Documents" 
]]; 

NSString *filePath = [resourceDocPath 
    stringByAppendingPathComponent:@"myPDF.pdf"]; 
[pdfData writeToFile:filePath atomically:YES]; 


// Now create Request for the file that was saved in your documents folder 
NSURL *url = [NSURL fileURLWithPath:filePath]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 

[webView setUserInteractionEnabled:YES]; 
[webView setDelegate:self]; 
[webView loadRequest:requestObj]; 

Esto almacenará su PDF de forma local y cargarlo en su UIWebView.

Espero que esto resuelva su problema.

+0

Estoy usando esta url ** http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIWebView_Class/UIWebView_Class.pdf**. ¿Qué debo pasar aquí en stringByAppendingPathComponent: myPDF.pdf ??? ¿Qué nombre de pdf debería pasar? Por favor, ayúdame. – Manthan

+0

perdón por una respuesta tardía, debe pasar el nombre del PDF que desea almacenar como, junto con la extensión ".pdf" como una cadena. – RVN

+0

Sí, tengo eso. Muchas gracias por su respuesta y ayuda. +1 por eso. – Manthan

0

Debe leer el File and Data Management Guide de Apple. Describirá qué ubicaciones están disponibles en el entorno limitado de la aplicación para guardar archivos localmente y cómo obtener una referencia a esas ubicaciones. También tiene una sección para leer y escribir :)

¡Disfrútalo!

0

También recomendaría echar un vistazo a ASIHTTPRequest para descargar archivos fácilmente.

+0

es que hay una manera de descargar archivos de forma local? entonces puedo usarlo más tarde en un archivo adjunto de correo electrónico. –

+0

Estoy usando ASIHTTPRequest. pero no sé a dónde van los archivos descargados. –

+0

¿Alguna solución? Muhammad Jabbar – Bittoo

0

He encontrado una versión rápida para ello:

let url = "http://example.com/examplePDF.pdf" 
if let pdfData = NSData(contentsOfURL: url) { 
    let resourceDocPath = NSHomeDirectory().stringByAppendingString("/Documents/yourPDF.pdf") 
    unlink(resourceDocPath) 
    pdfData.writeToFile(resourceDocPath, atomically: true) 
} 

Sólo recuerde guardar el archivo de ruta y usted será capaz de buscarlo siempre que lo necesite.

-1

Con Swift versión 3.0 sintaxis:

let url = NSURL(fileURLWithPath: "http://example.com/examplePDF.pdf") 

    if let pdfData = NSData(contentsOf: url as URL) { 

     let resourceDocPath = NSHomeDirectory().appending("/Documents/yourPDF.pdf") 

     unlink(resourceDocPath) 

     pdfData.write(toFile: resourceDocPath, atomically: true) 

    } 
Cuestiones relacionadas