2012-06-28 23 views
9

Mam aplikację na iOS, aby załadować ciąg html, który odwołuje się do zewnętrznego pliku css i pliku javascript w tym samym katalogu.Ładowanie iOS loadHtmlString w UIWebView nie działa z Javascriptem

Oto mój plik html:

<html> 
<head> 
    <meta name="viewport" content= user-scalable="no", width="device-width" /> 
    <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"/> 
    <link rel="stylesheet" type="text/css" href="mystyle.css" /> 
    <script type="text/javascript" src="myjavascript.js"></script> 
</head> 

pliku CSS działa dobrze, ale wydaje się, że plik js nigdy załadowany. Jaki mógł być powód?

Przy okazji używam metody loadHtmlString: BaseUrl, aby załadować mój ciąg html.

Dzięki

+1

Zobacz link [to] (http://stackoverflow.com/questions/7012537/sourcing-local-javascript-in-uiwebview-ios?rq=1) i miej nadzieję, że jest pomocny, ponieważ tego nie próbowałem. –

+0

Czy możesz pokazać swój kod iOS? – nhahtdh

+3

Sprawdź, czy javascript znajduje się w sekcji * Kopiowanie zasobów pakietu *, a nie w sekcji * Źródła kompilacji *. Nie wiem dlaczego, ale czasami Xcode myśli, że powinien skompilować twój JavaScript. Oczywiście nie może, więc po prostu załatwiasz pakiet no-op code i nie ma zasobów dla twojego HTML. – borrrden

Odpowiedz

6

To pytanie jest nieco stary, ale ponieważ nie zostało odebrane, chciałbym podkreślić, że jeśli chcesz widoku internetowej, aby załadować plik JavaScript zamieszkały w wiązce, droga Aby to zrobić, należy:

[webView loadHTMLString:html 
       baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]]; 

Jeśli nie określisz bazy danych, nie ma żadnej szansy na załadowanie pliku javascript.

+0

To jest dokładnie to, co zrobiłem. Problem polega na tym, że javascript wciąż nie jest załadowany, mimo że css jest w porządku. –

+0

Widzę ... jesteś pewien, że twój javascript nie zawiera błędów? problem z JS polega na tym, że nie działa on po cichu. jako bardzo surowe debugowanie, możesz umieścić w nim pewne instrukcje ostrzegawcze (powiedzmy, pierwszy wiersz w pliku js) i sprawdzić, czy pojawią się ... – sergio

+0

Tak, testowałem to, dodając tylko jedną linię JS kod do ostrzeżenia.Ale to nie działa. CSS działa. Dzięki i tak. –

2

jak inni twierdzą

  • zastosowanie baseURL [bibliotece NSURL fileURLWithPath [[NSBundle mainBundle] bundlePath]]];

  • Skopiuj zasoby zasobów i nie w komponencie Zasoby.

to wszystko!

5

Domyślnie, xcode umieści nowe pliki Javascript w Zasobach kompilacji zamiast w Zasobach pakietów. Kliknij swój projekt, a następnie swój cel. W sekcji "Build Phases" możesz zobaczyć pliki JavaScript w "Compile Sources". Przeciągnij je do "Kopiuj zasoby pakietu".

+1

To jest dokładnie to, co mi się przydarzyło, gdy przeciągnąłem kilka plików JS do mojego projektu. Usunąłem je z ** Kompilacji zasobów **, ponieważ Xcode zgłaszał błąd, ale bez ich udziału w ** Zasobach pakietowych **, nie były one dostępne dla mojej aplikacji. Dzięki! –

+0

To uratowało mi życie! Dzięki @Kevin Borders! – gilsaints88