2009-05-27 18 views
1

私の目的:アプリの中断(例えば、読み込まれた着信SMS)でウェブセッションを続けること。UIWebView incl。コンテンツのエンコード/デコード

アプローチA: 私はこのように、NSUserDefaults内のUIWebViewの内容を保存しようとしている:

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

して、好きそれを復元:

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

が、それはしていません内容を含める。

アプローチB:それを保存し、再びそれを取得し、その後でのUIWebViewでそれを設定しようと

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

私はまたしてのUIWebViewの内容を取得しようとしています

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

しかし、innerHTMLのJavaScriptはコンテンツ全体を返していません。

アイデア、提案などはありますか?あなたはまた、スクロールやズームを復元する必要がありますスムーズな経験のために

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

:あなたの文書がすべてのリソースを参照していない(あるいはそう明示ん)、あなたはouterHTML復元することができるはず場合

答えて

1

NSURLRequestsを使用して、取得したHTTP本体とCookieをNSUserDefaultsに保存しました。

アプリに再入力した後、これらを読み、UIWebViewとNSHTTPCookieStorageで再度設定し、これらのキーのNSUserDefaultsをクリアします。

0

ウェブビューの読み込み中にキャッシュされた表現を表示する

+0

不幸にも、空の文字列を返します –

+0

これはdocument.documentElement.outerHTMLである必要があります – rpetrich

関連する問題