NSData não foi carregado corretamente na UIWebView lodadata método
Pergunta
eu quero que UIWebView
trabalhando off-line.Quando eu visitar a url de eu ter feito o código abaixo para gravar dados no diretório de documentos em webViewDidFinishLoad
o método.
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 eu abrir a webview
segunda vez que irá verificar se o arquivo existe ou não.I-se o arquivo existir eu ter feito o código abaixo para abrir o arquivo a partir do local.
NSData * sData = (NSData *)[NSData dataWithContentsOfFile:filePath];
if (sData.length)
{
[webview loadData: sData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
}
Código acima não está a funcionar correctamente e eu estou ficando abaixo de saída.
Por favor, guia-me.o que eu estou fazendo de errado ??
Solução
Você deve definir adequada MIMEType
, porque UIWebView
não tem idéia de como processar os dados brutos.
NSCachedURLResponse* response = [[NSURLCache sharedURLCache] cachedResponseForRequest:[webview request]];
NSString *MIMEType = response.response.MIMEType;
NSData * data = [response data];
em seguida, carregar
[webview loadData: sData MIMEType:MIMEType textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow