2012-06-27 9 views
6

Mam na stronie HTML, który jest skonstruowany tak:UIWebView baseURL i ścieżka bezwzględna

<html> 
    <head> 
    <link rel="stylesheet" href="/style.css" /> 
    </head> 
    <body> 

    </body> 
</html> 

jest on przechowywany w moim katalogu dokumentów:

/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/12345-ID/Documents/mysite/index.html 

Mam również przechowywane w style.css w katalog dokumentów:

/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/12345-ID/Documents/mysite/style.css 

Ale teraz, gdy próbuję załadować html do mojego WebView użyciu jes s:

NSURL *test = [NSURL URLWithString:@"file:///Users/username/Library/Application Support/iPhone%20Simulator/5.1/Applications/12345-ID/Documents/mysite/"] 
[myWebView loadHTMLString:<the content retrieved from index.html> baseURL:test]; 

css nie jest ładowany, gdy przechwycić żądania do arkusza z NSURLProtocol Widzę zapytanie jest źle. Jest stara się wniosek:

pliku: ///style.css

zamiast pełnego baseURL. Teraz mogę rozwiązać ten problem poprzez usunięcie// przed /style.css w pliku html. Ale czy istnieje prosty sposób rozwiązania tego problemu w natywnym kodzie bez modyfikowania html?

+0

To jest dokładnie to, czego używam (patrz treść) – Thys

+0

Czy próbowali biorąc „/” off koniec bibliotece NSURL * test = [bibliotece NSURL ....... linii. Może wystąpić sytuacja podwójnego ukośnika, która może być przyczyną domyślnej lokalizacji użytkownika, tylko myśl. – trumpetlicks

+0

Nie działa :( – Thys

Odpowiedz

2

Usunięcie ukośnika było jedynym Rozwiązanie

+0

Ale będziesz mieć problem, gdy aplikacja zostanie uruchomiona i nie będzie już znajdować się w symulatorze na tej określonej ścieżce ... Rozwiązanie trumpetlicks jest ważne niezależnie od lokalizacji aplikacji. – darwin

+0

Powinno być możliwe używanie bezwzględnych ścieżek w widoku internetowym. Musisz zaimplementować niestandardowy NSURLProtocol. Chociaż wymaga to dużo kodu, więc szukam łatwego sposobu na obsłużenie tego. Kiedy go znajdę. Opublikuję to tutaj. –

12

Generowanie swoją ścieżkę i bazowy URL następujący sposób:

NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSURL *baseURL = [NSURL fileURLWithPath:path]; 
[webView loadHTMLString:htmlString baseURL:baseURL]; 

Wielki blog na temat:

http://iphoneincubator.com/blog/windows-views/uiwebview-revisited

tak QA na temat

UIWebView and local css file

+0

Usunięcie ukośnika było jedynym rozwiązaniem, wciąż bardzo dziękuję za przynajmniej staranie się pomóc :) – Thys

+0

W pewnym momencie tak się stało, ale do próbujesz kombinacji ...... Niestety, nie było rozwiązania, które pasowałoby do twoich potrzeb. – trumpetlicks

Powiązane problemy