Znalazłem odpowiedź po przeszukaniu. Oto, co zrobiłem:
Utwórz nowy projekt w XCode. Myślę, że korzystałem z aplikacji opartej na widoku.
Przeciągnij obiekt WebView do interfejsu i zmień jego rozmiar.
Wewnątrz twojego WebViewController.m (lub podobnie nazwanego pliku, w zależności od nazwy twojego widoku), w metodzie viewDidLoad:
NSString * filePath = [[NSBundle mainBundle] pathForResource: @ "index" ofType: @ "html"];
NSData * htmlData = [NSData dataWithContentsOfFile: filePath];
if (htmlData) {
NSBundle * bundle = [NSBundle mainBundle];
NSString * path = [bundle bundlePath];
NSString * fullPath = [NSBundle pathForResource: @ "index" ofType: @ "html" inDirectory: path];
[webView loadRequest: [NSURLRequest requestWithURL: [NSURL fileURLWithPath: fullPath]]];
}
Teraz wszystkie pliki dodane jako zasoby do projektu są dostępne do użycia w Twojej aplikacji internetowej. Mam plik index.html zawierający javascript i css oraz pliki graficzne bez żadnych problemów. Jedynym ograniczeniem, które do tej pory znalazłem, jest to, że nie mogę tworzyć nowych folderów, więc wszystkie pliki zaśmiecają folder zasobów.
Sztuczka: upewnij się, że dodałeś plik jako zasób w XCode, w przeciwnym razie plik nie będzie dostępny. Dodawałem pusty plik w XCode, a następnie przeciągałem mój plik na górę w Finderze. To działa na mnie.
Uwaga: zdaję sobie sprawę, że Obj-C nie może być trudny do nauczenia. Ale ponieważ mam już tę aplikację istniejącą w JS i wiem, że działa w Safari, jest to dla mnie znacznie szybszy cykl deweloperski. Pewnego dnia będę musiał się załamać i nauczyć Obj-C.
Kilka innych zasobów, które okazały się pomocne:
Wywołanie Obj-C z javascript: wywołanie objective-c z javascript
Wywołanie javascript z Obj-C: tworzenie aplikacji na iPhone'a dla hakerów internetowych
Odczytywanie plików z pakietu aplikacji: uiwebview
Sprawdź PhoneGap na http://www.phonegap.com, jak twierdzą, że umożliwia osadzanie JavaScript, HTML i CSS w natywnej aplikacji na iPhone'a.
źródło
Dla tych, którzy robią to na iPhonie 2.1 (być może 2.0), NIE musisz tworzyć żadnych specjalnych usług do lokalnego przechowywania danych. Wygląda na to, że MobileSafari obsługuje interfejs API bazy danych HTML5 / WHATWG SQL. To ten sam interfejs API obsługiwany przez najnowsze wersje przeglądarek Safari i Firefox na komputery stacjonarne.
Jeśli używasz zestawu narzędzi, takiego jak Dojo lub ExtJS, który oferuje abstrakcję pamięci, Twój kod powinien działać na prawie każdej nowoczesnej przeglądarce, w tym MobileSafari.
Aby przetestować, otwórz http://robertsanders.name/dev/stackoverflow/html5.html na swoim iPhonie.
Jeśli otworzysz tę stronę, a następnie spojrzysz na system plików iPhone'a z jailżerem, powinieneś zobaczyć bazę danych gdzieś w / private / var / mobile / Library / WebKit / Databases /. Jest tam nawet katalog baz danych otwieranych w sieci.
źródło
Możesz stworzyć aplikację, nie znając żadnego obj-C. Framework QuickConnectiPhone pozwala to zrobić. Sprawdź http://tetontech.wordpress.com, aby dowiedzieć się, jak go używać, a także inne sposoby robienia tego, o co prosiłeś.
źródło
Powinieneś mieć natywne opakowanie napisane w celu C. To opakowanie mogłoby zawierać naprawdę kilka linii kodu (np. 10) niezbędnych do stworzenia WebView i nawigowania po nim pod podany adres w Internecie (gdzie znajduje się twoja aplikacja). Ale w tym przypadku twoja aplikacja powinna być w pełni funkcjonalną aplikacją internetową (mam na myśli, używaj nie tylko JavaScript, ale także HTML do znaczników).
źródło
Napotkałem ten sam problem. Mam już grę napisaną w całości w Javascript. Chciałbym stworzyć wersję przyjazną dla iPhone'a, ale Obj-C to przesada. Skończyło się na tym, że użyłem WebView do wskazania specjalnego adresu URL aplikacji na iPhone'a. Po przemyśleniu tego, przypuszczam, że mógłbym po prostu przenieść te pliki do katalogu aplikacji i uruchomić je lokalnie.
źródło
Nie ma sposobu, aby to zrobić z obecnymi interfejsami Apple API. Twoim najbliższym rozwiązaniem jest napisanie prostej natywnej aplikacji na iPhone'a, która osadzi przeglądarkę Webkit. Umożliwi to lokalne przeglądanie aplikacji xhtml / js.
Jeśli chcesz przechowywać dane, musisz pójść o krok dalej i dołączyć lekki serwer http, który obsługuje Twoją aplikację i zapewnia wywołania w celu przechowywania i pobierania danych. Prawdopodobnie nie jest to idealne rozwiązanie dla Ciebie, ale prawdopodobnie mniej pracy niż pełna aplikacja Obj-C.
Na marginesie, Obj-C jest dość łatwy do nauczenia. W SDK jest mnóstwo przykładów. Społeczność jest silna i bez wahania odpowie na dobrze postawione pytania.
źródło
Używam phonegap już od jakiegoś czasu i wydaje mi się, że daje to najlepsze rezultaty. Za około tydzień opublikuję swoje doświadczenia z linkiem do mojej aplikacji.
źródło
Titanium Mobile jest również opcją - pozwala na pisanie JavaScript, który zostanie przetłumaczony na Objective-C.
źródło
Co najmniej 2 inne osoby wspomniały o phonegap, ale pomyślałem, że też to opublikuję i wspomnę, że Apple zatwierdziło platformę phonegap. Więc teraz nie otrzymasz odrzucenia aplikacji przez Apple tylko dlatego, że używasz phonegap.
Wpis na blogu o phonegap i Apple - http://blogs.nitobi.com/jesse/2009/11/20/phonegapp-store-approval/
Phone Gap Home
źródło