Domanda

Voglio che UIWebView funzioni offline.Quando visito per la prima volta l'URL di quanto ho fatto il seguente codice per salvare i dati nella directory dei documenti nel metodo webViewDidFinishLoad.

NSCachedURLResponse* response = [[NSURLCache sharedURLCache]                                     cachedResponseForRequest:[webview request]];
NSData * data = [response data];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSString *filePath = [NSString stringWithFormat:@“%@temp”, basePath];
if (response)
{
    BOOL isSaveFile = [NSKeyedArchiver archiveRootObject:data toFile:filePath];
}
.

Quando apro la seconda volta la seconda volta webview, controllerò quel file esistono o meno.Ottengo il file esistente che ho fatto il codice sotto per aprire il file da Local.

NSData * sData = (NSData *)[NSData dataWithContentsOfFile:filePath];
if (sData.length)
{
[webview loadData: sData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
}
.

Il codice sopra non funziona correttamente e sto ottenendo l'output qui sotto.

Inserisci la descrizione dell'immagine qui

Per favore guidami.Cosa sto facendo male ??

È stato utile?

Soluzione

È necessario impostare MIMEType corretto, poiché UIWebView non ha idea di come rendere i dati grezzi.

NSCachedURLResponse* response = [[NSURLCache sharedURLCache] cachedResponseForRequest:[webview request]];
NSString *MIMEType = response.response.MIMEType;
NSData * data = [response data];
.

quindi caricare

[webview loadData: sData MIMEType:MIMEType textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top