Ich fand die Antwort, nachdem ich mich umgesehen hatte. Folgendes habe ich getan:
Erstellen Sie ein neues Projekt in XCode. Ich glaube, ich habe die ansichtsbasierte App verwendet.
Ziehen Sie ein WebView-Objekt auf Ihre Benutzeroberfläche und ändern Sie die Größe.
Innerhalb Ihrer WebViewController.m (oder einer ähnlich benannten Datei, abhängig vom Namen Ihrer Ansicht) in der viewDidLoad-Methode:
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]]];
}}
Jetzt können alle Dateien, die Sie dem Projekt als Ressourcen hinzugefügt haben, in Ihrer Web-App verwendet werden. Ich habe eine index.html-Datei mit Javascript, CSS- und Bilddateien ohne Probleme. Die einzige Einschränkung, die ich bisher gefunden habe, ist, dass ich keine neuen Ordner erstellen kann, sodass alle Dateien den Ressourcenordner überladen.
Trick: Stellen Sie sicher, dass Sie die Datei als Ressource in XCode hinzugefügt haben, da sie sonst nicht verfügbar ist. Ich habe eine leere Datei in XCode hinzugefügt und dann meine Datei im Finder nach oben gezogen. Das hat bei mir funktioniert.
Hinweis: Mir ist klar, dass Obj-C nicht so schwer zu lernen sein darf. Aber da ich diese App bereits in JS habe und weiß, dass sie in Safari funktioniert, ist dies ein viel schnellerer Entwicklungszyklus für mich. Ich bin mir sicher, dass ich eines Tages zusammenbrechen und Obj-C lernen muss.
Einige andere Ressourcen, die ich hilfreich fand:
Aufrufen von Obj-C aus Javascript: Aufrufen von Objective-C aus Javascript
Aufruf von Javascript von Obj-C: iPhone App-Entwicklung für Web-Hacker
Lesen von Dateien aus dem Anwendungspaket: uiwebview
Schauen Sie sich PhoneGap unter http://www.phonegap.com an. Sie behaupten, dass Sie damit JavaScript, HTML und CSS in eine native iPhone-App einbetten können.
quelle
Für diejenigen, die dies auf dem iPhone 2.1 (möglicherweise 2.0) tun, müssen Sie KEINE speziellen Dienste für die lokale Datenspeicherung erstellen. MobileSafari scheint die HTML5 / WHATWG SQL-Datenbank-API zu unterstützen. Dies ist dieselbe API, die von neueren Versionen von Desktop Safari und Firefox unterstützt wird.
Wenn Sie ein Toolkit wie Dojo oder ExtJS verwenden, das eine Speicherabstraktion bietet, sollte Ihr Code in nahezu jedem modernen Browser funktionieren, einschließlich MobileSafari.
Öffnen Sie zum Testen http://robertsanders.name/dev/stackoverflow/html5.html auf Ihrem iPhone.
Wenn Sie diese Seite öffnen und dann das Dateisystem eines iPhone mit Jailbroken anzeigen, sollte sich irgendwo in / private / var / mobile / Library / WebKit / Databases / eine Datenbank befinden. Es gibt dort sogar ein Verzeichnis von im Internet geöffneten DBs.
quelle
Sie können eine Anwendung erstellen, ohne obj-C zu kennen. Mit dem QuickConnectiPhone-Framework können Sie dies tun. Unter http://tetontech.wordpress.com erfahren Sie, wie Sie es verwenden und wie Sie das tun, was Sie gefragt haben.
quelle
Sie sollten den nativen Wrapper in Ziel C schreiben lassen. Dieser Wrapper kann wirklich wenige Codezeilen (z. B. 10) enthalten, die zum Erstellen einer WebView und zum Navigieren zu der angegebenen Adresse im Internet (wo sich Ihre Anwendung befindet) erforderlich sind. In diesem Fall sollte Ihre Anwendung jedoch eine Webanwendung mit vollem Funktionsumfang sein (ich meine, verwenden Sie nicht nur JavaScript, sondern auch HTML für Markups).
quelle
Ich bin auf dasselbe Problem gestoßen. Ich habe bereits ein Spiel, das vollständig in Javascript geschrieben ist. Ich würde gerne eine iPhone-freundliche Version machen, aber Obj-C ist ein Overkill. Am Ende habe ich mit WebView auf eine spezielle URL der iPhone-App verwiesen. Nachdem ich darüber nachgedacht habe, könnte ich diese Dateien einfach in das App-Verzeichnis verschieben und lokal ausführen.
quelle
Mit den aktuellen Apple-APIs ist dies nicht möglich. Am ehesten schreiben Sie eine einfache native iPhone-App, in die der Webkit-Browser eingebettet ist. Auf diese Weise können Sie Ihre xhtml / js-Anwendung lokal durchsuchen.
Wenn Sie Daten speichern möchten, müssen Sie noch einen Schritt weiter gehen und einen leichten http-Server einbinden, der Ihre App auf den Server bringt und Anrufe zum Speichern und Abrufen von Daten bereitstellt. Wahrscheinlich keine ideale Lösung für Sie, aber möglicherweise weniger Arbeit als eine vollständige Obj-C-App.
Als Randnotiz ist Obj-C ziemlich einfach zu lernen. Das SDK enthält unzählige Beispiele. Die Community ist stark und wird ohne zu zögern gut gestellte Fragen beantworten.
quelle
Ich benutze Phonegap für eine Weile und es scheint die besten Ergebnisse für mich zu haben. Ich werde meine Erfahrungen in ungefähr einer Woche auch mit einem Link zu meiner App veröffentlichen.
quelle
Titanium Mobile ist ebenfalls eine Option - Sie können JavaScript schreiben, das in Objective-C übersetzt wird.
quelle
Mindestens zwei andere erwähnten Phonegap, aber ich dachte, ich würde dies auch posten und erwähnen, dass Apple das Phonegap-Framework genehmigt hat. Jetzt wird Ihre App nicht mehr von Apple abgelehnt, nur weil Sie Phonegap verwenden.
Blogbeitrag über Phonegap und Apple - http://blogs.nitobi.com/jesse/2009/11/20/phonegapp-store-approval/
Telefonlücke nach Hause
quelle