2012-03-11 2 views
1

웹 페이지를로드하는 WebView가 있습니다. 나는 웹 페이지에로드 된 모든 이미지를 저장하려면,하지만 난 각각의 이미지가 완료 될 때 대리자 메서드를 통해 다운로드를 저장하려면 :OSX - WebView에로드 된 이미지 얻기

-(void) webView:(WebView *)sender resource:(id)identifier didFinishLoadingFromDataSource:(WebDataSource *)dataSource

어떻게 이런 짓을 했을까? 나는 이미지 src를 잡고 이미지를 다시 다운로드하는 상황을 피하고자한다. 어쩌면 내 접근 방식이 틀렸을 까? 어쩌면 [NSURLCache sharedURLCache]을 통해 이미지를 저장 하시겠습니까? 어떤 도움이라도 대단히 감사합니다! 감사!

+0

[WebKit, 가능한 리소스의 내용을 어떻게 얻을 수 있습니까?] (http://stackoverflow.com/questions/3155359/webkit-how-do-i-get-the-contents-of-the -resource) –

+0

맞습니다. 그 스레드를 발견하고 자체 답변을 기다리고 있지만 그것을 수행하는 데 충분한 명성이 없습니다. 답변으로 제공하려는 경우 행복하게 답으로 표시 할 것입니다. –

답변

0

This SO answer은 최종 솔루션에 대한 획기적인 발전을 도왔습니다. img 태그에서 src 속성을 가져 오기 위해 일부 자바 스크립트를 실행했다. 그런 다음 -(void) webView:(WebView *)sender resource:(id)identifier didFinishLoadingFromDataSource:(WebDataSource *)dataSource 메서드가 호출 될 때마다 [dataSource subresourceForURL:url]을 확인합니다. true를 반환하면 저장을 수행합니다. 전체 코드는 다음과 같습니다.

-(void) webView:(WebView *)sender resource:(id)identifier didFinishLoadingFromDataSource:(WebDataSource *)dataSource { 
    NSURL *url = [NSURL URLWithString:[[webView windowScriptObject] evaluateWebScript:/* javascript to grab src */]]; 
    if ([dataSource subresourceForURL:url]) { 
     NSData *dataToSave = [[dataSource subresourceForURL:url] data]; 
    } 
} 

희망이 있으면 도움이 될 것입니다.

관련 문제