2012-05-08 3 views
1

사용자가 네트워크에 연결하여 오프라인 (이미지/리소스 포함)에 저장할 때 웹 페이지를로드하려고합니다. 사용자가 네트워크에 연결되어 있지 않으면 이전에 저장된 웹 페이지를로드해야합니다. 나는 NSData dataWithContentsOfURL:(NSURL *)urlNSString stringWithContentsOfURL을 시도했지만, 이들은 단지 html 콘텐츠가 아닌 리소스를 저장합니다. 미리 감사드립니다. 당신이 앱을하는 경우에만 "사파리 클라이언트 측 스토리지 및 오프라인 응용 프로그램 프로그래밍 가이드", http://developer.apple.com/library/safari/#documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Introduction/Introduction.html아이폰에 전체 웹 페이지를 캐시하는 방법은 무엇입니까?

-

답변

0
write this data into file using 

-(void)writeDataToFile:(NSString*)filename 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    if(filename==nil) 
    { 
     DLog(@"FILE NAME IS NIL"); 
     return; 
    } 
    // the path to write file 
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat: @"%@",filename]]; 
    /*NSData *writeData; 
    writeData=[NSKeyedArchiver archivedDataWithRootObject:pArray]; */ 
    NSFileManager *fm=[NSFileManager defaultManager]; 
    if(!filePath) 
    { 
     //DLog(@"File %@ doesn't exist, so we create it", filePath); 
     [fm createFileAtPath:filePath contents:self.mRespData attributes:nil]; 
    } 
    else 
    { 
     //DLog(@"file exists"); 
     [self.mRespData writeToFile:filePath atomically:YES]; 
    } 

    NSMutableData *resData = [[NSMutableData alloc] init]; 
    self.mRespData=resData; 
    [resData release]; 
} 

+0

나는 이것이 질문에 대답하지 않는다고 생각합니다. 데이터를 저장하는 방법이 아니라 웹 사이트의 모든 것을 다운로드하고 저장하는 방법입니다. –

+0

저장하려는 데이터는 무엇입니까? – Saad

+0

나는 어떤 데이터도 저장하고 싶지 않지만 질문자는 다음과 같이 보입니다 ... 내가 이해 한대로 - 오프라인 사용을 위해 * 모든 * 웹 사이트의 * 모든 것을 저장하는 방법입니다. –

0

내가 간단한 해결책이 생각 다음로드 HTML5와 webview는 아직이 방법을 테스트하지 않았기 때문에 작동 할 수도 있습니다.

+0

웹 개발자 인 경우 오프라인 저장소에 관한 내용이지만 오프라인 사용을 위해 * 모든 * 웹 사이트를 저장하는 방법에 대한 질문이 있습니다. –

+0

웹 뷰와 HTML5를 사용하여 앱을 제작할 때만 HTML5가이 작업을 수행 할 수 있다는 점을 알려 주셔서 감사합니다. – Tom

0

myWebView.cache4Offline = YES; 같은 한 줄-솔루션이 있다면 나도 몰라,하지만 난 당신이 어떤 웹 사이트 오프라인 내부를 확인하려는 경우 즉, 웹 사이트 코드에 액세스 (하지 않는 한 우려 귀하의 애플 리케이션), 당신은 스스로 이것을 프로그램해야합니다. 그것에 대해 생각, 그렇게 어려운 것 같지 않습니다

  1. 는 HTML 이미지 URL의 문자열 (그리고 다른 모든 필요한)
  2. 다운로드를 스캔 NSData dataWithContentsOfURL (어쩌면 조금 성가신을 사용하여 인터넷에서 이들 자원 때문에 옵션 : 오류 :있는 NSData writeToFile와 파일에
  3. 데이터를 저장) 상대/절대 URL의
  4. 3.로부터적인 filePath과 HTML에 URL을 교체 (또는, 더 나은 당신의자신의 URL을 변환하는 규칙을 사용 파일 URL)

+0

filePath가 .png 이미지가 아닌 NSData를 가리 키기 때문에 URL을 hTML의 파일 경로로 바꿀 방법이 없다는 것을 제외하면이 솔루션이 작동합니다. –

2

당신은 그 ASIHttpRequest로 할 수있는 도움이되기를 바랍니다. 해당 프로젝트를 사용하고 싶지 않으면 (더 이상 활성화되지 않음) 코드와 그 기능을 살펴볼 수 있습니다. 자세한 내용은 this을보십시오.

관련 문제