我正在尝试使用NSKeyedArchiver对我的NSKeyedArchiver对象进行归档,然后在相同的状态下使用NSKeyedUnarchiver进行还原。存档/未存档的工作,但UIWebView是空白的时候,再一次(我存档它与一个网站加载),但我需要它有相同的网站,它做了之前,我存档它。
我试过保存HTTPBody of NSURLRequest of UIWebView,但这总是返回(null),所以我想我在那里找错了树。(还是我搞错了?)
以下是我尝试过的:
UIWebView*currentWebview = [[Controller sharedInstance] mainWebView];
NSData*webViewData = [NSKeyedArchiver archivedDataWithRootObject:currentWebview];
[sub setObject:webViewData forKey:@"Instance"]; //saves and decodes correctly, but that's a blank `UIWebView` even though I saved it with contents being loaded
NSData*body = [[currentWebview request] HTTPBody]; //returns (null) always, but the webview is not null and has a valid request
[sub setObject:body forKey:@"HTTP_Body"];我在这里错过了什么?我需要保持UIWebView的原样,并再次以相同的状态加载它,而不必在稍后阶段打开该URL。
是的,我知道document.documentElement.outerHTML和document.documentElement.innerHTML,但这是而不是我想要的。我需要为以后保留整个网站,而不仅仅是HTML代码。
谢谢!
发布于 2011-07-13 12:38:50
你在尝试做一些NSKeyedArchiver不愿意做的事情。抱歉的!如果你想存档一个网页,你必须自己做,然后重新加载页面,当你重新创建网页视图。
要获取网站数据,您需要自己加载(使用NSURLConnection等),并在它到达时进行存储。
我想看看ASIHTTP库 -它取代了NSURL.方法使用(IMHO)一组更好、更灵活的对象集。他们刚刚添加了一种新的方法,它应该做您想要做的事情--它被称为ASIWebPageRequest。
希望这能有所帮助。
发布于 2011-07-13 12:39:36
您可以看看这个S.O.专题。
这对你没有多大帮助,但似乎其他人尝试过,但没有取得多大的成功。
发布于 2013-02-13 20:00:45
您可以使用以下代码:https://github.com/rnapier/RNCachingURLProtocol易于实现,工作非常完美。
https://stackoverflow.com/questions/6678786
复制相似问题