J'écris une application iPhone avec un UIWebView qui devrait afficher divers fichiers html que j'ai dans le dossier de ressources de l'application. Dans Xcode mon aperçu du projet, ces fichiers html sont affichés comme ceci:iPhone dev: charger un fichier à partir du dossier de ressources
dirA
|---> index.html
|---> a1.html
|---> a2.html
|---> my.css
|---> dirB
|---> b1.html
|---> b2.html
|---> dirC
|---> c1.html
|---> c2.html
Ces ressources là où ajoutées au projet en tant que tel:
- checked « Copier des éléments dans le dossier de groupes de destination (si nécessaire) » .
- Type de référence: Par défaut.
- Codage du texte: Unicode (utf-8).
- Créer de manière récursive des groupes pour tous les dossiers ajoutés.
Les liens dans mon html sont relatives, ce qui signifie qu'ils ressemblent à ceci:
<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>
Pour afficher l'index.html lorsque l'application démarre, j'utilise le code suivant:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
Cela fonctionne très bien. Les liens suivants provenant du fichier d'index fonctionnent également correctement, tant que les fichiers html demandés sont directement sous dirA. Si le lien suivi pointe vers un fichier dans un sous-répertoire, alors didFailLoadWithError
détectera la situation et signalera que le fichier demandé n'existe pas.
En outre,
[webView loadHtmlString:myHtml];
ne peut pas faire partie de la solution, comme je l'ai besoin boutons avant et arrière pour travailler à mon avis Web.
Donc la question est: Comment puis-je suivre un lien relatif à un fichier html dans un sous-répertoire au sein de mes ressources?
J'ai été partout stackoverflow et le reste des tubes pour les derniers jours essayant de comprendre celui-là, mais nulle part j'ai trouvé la solution à ce problème exact. Toute idée serait très, très appréciée!
EDIT: Yoohoo! Je l'ai compris! Quelle joie! Voici ce que j'ai fait:
- A de nouveau importé mes ressources, en choisissant "Créer des références de dossier pour tous les dossiers ajoutés" au lieu de "Créer de manière récursive des groupes pour tous les dossiers ajoutés."
- spécifié le répertoire racine de ressources, comme ceci:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"dirA"];
Oui, merci. Comme vous pouvez le voir de mon édition (de la question originale), j'ai découvert cela par moi-même quelques heures d'âge. Il semble qu'il n'y ait pas de "je l'ai finalement compris" -bit. Tant pis. Je vais juste vous donner le crédit :-) – thomax
Je voudrais obtenir le même résultat mais j'ai déjà ajouté les dossiers. Y at-il de toute façon à enseigner à xcode d'organiser cela dans des dossiers par la suite? – amok