Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何将webView可编辑内容保存到WebArchive?_Cocoa_Resources_Webview_Webarchive - Fatal编程技术网

Cocoa 如何将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创建WebArchive。我有它的工作,但我发现了一个问题,当我尝试和编辑的内容工作。这就是我目前正在做的:

[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。有什么想法吗?