Ich schreibe eine iPhone-App mit einem UIWebView, die verschiedene HTML-Dateien anzeigen soll, die ich im App-Ressourcenordner habe. In Xcode meiner Projektübersicht werden diese HTML-Dateien wie folgt angezeigt:iPhone dev: Laden Sie eine Datei aus dem Ressourcen-Ordner
dirA
|---> index.html
|---> a1.html
|---> a2.html
|---> my.css
|---> dirB
|---> b1.html
|---> b2.html
|---> dirC
|---> c1.html
|---> c2.html
Diese Ressourcen, wo das Projekt als solches hinzugefügt:
- Checked „kopieren Elemente in Zielgruppen-Ordner (falls erforderlich)“ .
- Referenztyp: Standard.
- Textkodierung: Unicode (utf-8).
- Erstellen Sie rekursiv Gruppen für alle hinzugefügten Ordner.
Die Links in meinem html sind relativ, das heißt, sie wie folgt aussehen:
<a href="a1.html">a1</a>
<a href="a2.html">a2</a>
<a href="dirB/b2.html">b2</a>
<a href="dirC/c1.html">c1</a>
Um die index.html angezeigt werden, wenn die Anwendung gestartet wird, verwende ich den folgenden Code:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
Das funktioniert gut. Folgende Links aus der Indexdatei funktionieren auch, solange die angeforderten HTML-Dateien direkt unter dirA liegen. Wenn der folgende Link auf eine Datei in einem Unterverzeichnis verweist, wird didFailLoadWithError
die Situation abfangen und melden, dass die angeforderte Datei nicht existiert. Auch
,
[webView loadHtmlString:myHtml];
kann nicht Teil der Lösung sein, da ich zurück und nach vorn Tasten müssen in meiner Web-Ansicht arbeiten.
Die Frage ist also: Wie kann ich einen relativen Link zu einer HTML-Datei in einem Unterverzeichnis innerhalb meiner Ressourcen folgen?
Ich war in den letzten paar Tagen überall auf Stackoverflow und dem Rest der Röhren, um herauszufinden, aber nirgendwo habe ich die Lösung für dieses genaue Problem gefunden. Jede Einsicht würde sehr, sehr geschätzt!
EDIT: Yoohoo! Ich habe es herausgefunden! Was ein Spaß! Hier ist was ich getan habe:
- Importiert meine Ressourcen neu, wählen Sie "Ordnerverweise für alle hinzugefügten Ordner erstellen" statt "rekursiv Gruppen für alle hinzugefügten Ordner erstellen."
- das Stammverzeichnis für Ressource angegeben, etwa so:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"dirA"];
Ja, danke. Wie Sie von meiner Bearbeitung (der Originalfrage) sehen können, habe ich diese selbst einige Stunden alt entdeckt. Es scheint, als gäbe es kein "Ich habe es endlich selbst herausgefunden" -Bit. Naja. Ich gebe dir nur die Ehre :-) – thomax
Ich möchte das gleiche Ergebnis erhalten, aber ich habe bereits die Ordner hinzugefügt. Gibt es dem xcode irgendwie beizubringen, das in Ordnern danach zu organisieren? – amok