2010-11-18 11 views

cevap

6

Bir istek yüklemek yerine, - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL yöntemini kullanın.

bu gibi yerel HTML dosyasından bir NSString oluşturun: Böyle

NSError *error = nil; 
NSString *html = [[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"test1" ofType:@"html"] encoding:NSUTF8StringEncoding error:&error]; 
Sonra

Web görünümündeki içine yükleyin: Eğer diğer sayfalara bağlantı HTML dosyasında Sonra

[webview loadHTMLString:html baseURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"test1" ofType:@"html"]]]; 

sadece dosya adlarını kullanın, <a href="test2.html">Test 2</a> gibi ve herhangi bir sorun olmadan sayfayı aynı web sayfasında yükler.

+0

Yerel html dosyasını yüklemek için doğru cevabı kesinlikle aldınız! İpuçları için teşekkürler :) Ben bir +1 – Unikorn

+0

vereceğim Kodunu kullanırsam aşağıdaki hatayı alıyorum: "NSURL * '" parametresine' NSString * 'gönderen uyumsuz işaretçi türleri " neyin yanlış? – MJB

+0

Kötü, kodu bellekten yazdım ve ya baseURL'nin bir NSURL aldığını veya pathForResource'ın bir NSURL döndürmediğini unuttuğunu unuttum. İkinin biri. Şimdi iyi olmalı. – Jasarien

1
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [webview loadHTMLString:[self htmlString] baseURL:[self baseURL]]; 
} 
- (NSURL *)baseURL{ 
    NSString *htmlpath = [[NSBundle mainBundle] pathForResource:@"webpage" ofType:@"html"]; 
    return [[[NSURL alloc] initFileURLWithPath:htmlpath] autorelease]; 
} 

- (NSString *)htmlString{ 
    NSError *error = nil; 
    NSString *html = [[[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"webpage" ofType:@"html"] 
                encoding:NSUTF8StringEncoding 
                 error:&error] autorelease]; 
    return html; 
} 
İlgili konular