Pergunta

O meu objectivo: (. Por exemplo SMS de entrada que é lido). Para continuar uma sessão de web através de uma interrupção aplicativo

Abordagem A: Tentei guardar o conteúdo de um UIWebView em NSUserDefaults, como este:

NSData *webViewData = [NSKeyedArchiver archivedDataWithRootObject:webView];
[[NSUserDefaults standardUserDefaults] setObject:webViewData forKey:kDefaultsWebViewObjectKey];

e, em seguida, restaurá-lo como:

NSData *dta = [[NSUserDefaults standardUserDefaults] objectForKey:kDefaultsWebViewObjectKey];
webView = [NSKeyedUnarchiver unarchiveObjectWithData:dta];

mas que não inclui o conteúdo.

Abordagem B: Eu também tentei obter o conteúdo do UIWebView com:

NSString *content = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML;"];

, em seguida, armazená-lo e recuperá-lo novamente, e, em seguida, tentando defini-la no UIWebView com:

- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL

mas o javascript innerHTML é não retornando todo o conteúdo.

Todas as ideias, sugestões, etc.?

Foi útil?

Solução

Acabei usando NSURLRequests, e depois armazenar o corpo HTTP recuperados e cookies para NSUserDefaults.

Após a re-entrada para o aplicativo que eu li estes e colocá-los novamente em um UIWebView e na NSHTTPCookieStorage, e, em seguida, limpar os NSUserDefaults para essas chaves.

Outras dicas

Se o documento não faz referência a quaisquer recursos (ou fá-lo explicitamente), você deve ser capaz de restaurar o outerHTML:

NSString *content = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML;"];

Para a experiência mais suave você terá que também restaurar a rolagem e zoom propriedades e mostrar uma representação em cache enquanto o webview é carregamento

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top