Открыть .webarchive на iphone? - PullRequest
       36

Открыть .webarchive на iphone?

7 голосов
/ 22 октября 2008

Кто-нибудь знает, можно ли программно открыть .webarchive на iPhone? .Webarchive - это способ упаковки веб-страниц Safari и связанных с ним ресурсов в один файл.

Я пытался создать его и перейти по ссылке на него в мобильном сафари, но это не сработало ....

Примечание. Я надеялся, что это можно сделать без стороннего приложения, поскольку это был бы хороший способ упаковать WebApp для использования на iphone без использования стороннего инструмента.

Ответы [ 4 ]

16 голосов
/ 10 февраля 2011

веб-архив поддерживается на iOS. Просто загрузите его в UIWebView. Это просто работает!

для загрузки веб-архива в ваш пакет, просто сделайте

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

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

webview - это ваш UIWebview

4 голосов
/ 22 октября 2008

.webarchive - это просто список; теоретически вы можете прочитать его с помощью NSPropertyListSerialization, а затем создать локальную файловую структуру на телефоне, а затем добавить ее в UIWebView. Или используйте AirSharing.

3 голосов
/ 06 июля 2011

Если немного расширить предложения, приведенные выше, если вы просто хотите получить 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";

}
0 голосов
/ 22 октября 2008

AirSharing на iPhone откроет файлы веб-архива, но я не знаю, делают ли они все сами или используют встроенную поддержку веб-архивов.

См. http://www.avatron.com/products/

...