Cocoa 如何将webView可编辑内容保存到WebArchive?
我正在尝试从WebView创建WebArchive。我有它的工作,但我发现了一个问题,当我尝试和编辑的内容工作。这就是我目前正在做的:Cocoa 如何将webView可编辑内容保存到WebArchive?,cocoa,resources,webview,webarchive,Cocoa,Resources,Webview,Webarchive,我正在尝试从WebView创建WebArchive。我有它的工作,但我发现了一个问题,当我尝试和编辑的内容工作。这就是我目前正在做的: [webView setEditable:YES]; WebDataSource *dataSource = [[webView mainFrame] dataSource]; WebArchive *archive = [[WebArchive alloc] initWithMainResource:[dataSource mainResou
[webView setEditable:YES];
WebDataSource *dataSource = [[webView mainFrame] dataSource];
WebArchive *archive = [[WebArchive alloc]
initWithMainResource:[dataSource mainResource]
subresources:nil
subframeArchives:nil];
[[archive data] writeToFile:destinationPath atomically:YES];
[[webView mainFrame]
loadRequest:[NSURLRequest
requestWithURL:
[NSURL fileURLWithPath:destinationPath]
]];
我对WebView中的内容所做的任何编辑都不会存储在WebArchive中。我是否需要将更改提交回原始文件才能正常工作?我希望它能够根据WebView中的内容进行保存。任何帮助都将不胜感激。谢谢 经过一段时间的挖掘,我终于找到了自己问题的答案。我是这样做的:
WebResource *dataSource = [[[[webView mainFrame] DOMDocument] webArchive] mainResource];
WebArchive *archive = [[WebArchive alloc]
initWithMainResource:dataSource
subresources:nil
subframeArchives:nil];
[[archive data] writeToFile:@"output.webarchive" atomically:YES];
希望这对某人有所帮助。这就是我正在做的,在这里工作正常(即writeToFile:atomically:)。我想将webarchive的内容加载回webview可能有问题。您能否检查您在destinationPath中编写的文件是否是您想要的,即编辑的文件?我实际上正在将一个HTML文件(input.HTML)加载到WebView中,然后尝试将其保存到WebArchive(output.WebArchive)中。保存工作正常,但它似乎从原始文件创建WebArchive,并忽略所做的更改。当我说更改时,我的意思是,在设置[webView setEditable:YES]之后,我删除或添加文本,然后保存WebArchive,我所做的任何更改都不会进入输出。这就是您所说的正在工作的吗?[dataSource mainResource]返回“表示数据源的web资源。返回的内容基于原始下载的数据。您可以使用返回的值来创建WebArchive对象,而不是使用WebArchive方法。”根据Apple参考库(hhttp://developer.apple.com/library/mac/documentation/cocoa/Reference/WebKit/Classes/WebDataSource_Class/Reference/Reference.html).在这一点上,我认为我需要一种方法从WebView中获取源DOM,然后创建一个WebDataSource,然后创建一个WebArchive。有什么想法吗?