문제

iPhone에서 .webarchive를 프로그래밍 방식으로 열 수 있는지 아는 사람이 있습니까? .webarchive는 Safari의 웹 페이지를 포장하는 방법이며 리소스를 단일 파일로 연결합니다.

나는 하나를 만들고 모바일 사파리에서 하나에 대한 링크를 탐색하려고 시도했지만 작동하지 않았다 ....

참고 : 타사 도구가 필요없이 iPhone에서 사용하기 위해 WebApp을 포장하는 좋은 방법이기 때문에 타사 앱 없이는 이것이 수행 될 수 있기를 바랐습니다.

도움이 되었습니까?

해결책

WebArchive는 iOS에서 지원됩니다. UIWebView에로드하십시오. 그것은 단지 작동합니다!

번들에 webarchive를로드하려면

NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"myFile"
     withExtension:@"webarchive"];

[webView loadRequest:[NSURLRequest requestWithURL:fileURL]];

WebView는 UIWebView입니다

다른 팁

.webarchive는 단지 명백한 일입니다. 이론적으로 NSPropertyListserialization을 사용하여 읽은 다음 전화기에 로컬 파일 구조를 작성한 다음 UIWebView로 펌핑 할 수 있습니다. 또는 에어 공유를 사용하십시오.

HTML을 잡으려면 위의 제안을 조금 확장하면 다음 코드 스 니펫이 좋은 출발점 일 수 있습니다. WebMainResource 사전을 검사하면 이미지와 같은 다른 자료도 추출 할 수 있습니다.

#define WEB_ARCHIVE @"Apple Web Archive pasteboard type"

- (NSString*) htmlStringFromPasteboard;
{
    NSData* archiveData = [[UIPasteboard generalPasteboard] valueForPasteboardType:WEB_ARCHIVE];

    if (archiveData)
    {
        NSError* error = nil;
        id webArchive = [NSPropertyListSerialization propertyListWithData:archiveData options:NSPropertyListImmutable format:NULL error:&error];

        if (error)
        {
            return [NSString stringWithFormat:@"Error: '%@'", [error localizedDescription]];
        }
        NSDictionary* webMainResource = [webArchive objectForKey:@"WebMainResource"];
        NSData * webResourceData = [webMainResource objectForKey:@"WebResourceData"];

        NSString* string = [[NSString alloc] initWithData:webResourceData encoding:NSUTF8StringEncoding];

        return [string autorelease];
    }

    return @"No WebArchive data on the pasteboard just now";

}

iPhone의 에어 공유는 WebArchive 파일을 열지 만, 그들이 스스로 수행하고 있는지 또는 기본 웹 아키텍트 지원을 사용하고 있는지 전혀 모른다.

보다 http://www.avatron.com/products/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top