2010-06-05 5 views
1

Je travaille avec un chargement local UIWebView (c'est-à-dire dans le bundle source) des pages html, par exemple l'exemple Transweb d'Apple. Le chargement de la première page est trivial. Cependant, j'ai ajouté une deuxième page html et liée à la première. Tenter de créer un lien vers une deuxième page ne semble pas fonctionner.Chargement de pages html locales dans UIWebView

Quelqu'un sait comment faire ce travail?

Merci.

Répondre

1

J'ai eu des difficultés à accéder aux ressources relatives lors du chargement d'un fichier par chemin. Essayez de charger le fichier dans la mémoire, sous la forme d'une chaîne ou de données, de sorte que vous pouvez explicitement passer dans une URL de base.

NSURL *bundleURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]; 

puis

[yourWebView loadHTMLString:yourHTML baseURL:bundleURL]; 

ou

[yourWebView loadData:yourHTML MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:bundleURL]; 

je cela pour accéder à des ressources d'image, mais il peut aussi aider avec des liens relatifs.

+0

Peut-être que je vous ai mal compris. Le code que vous avez écrit ci-dessus est la façon dont je charge une page dans un webview (c'est-à-dire "one.html"). C'est déjà clair pour moi. Mais quand je clique ensuite sur un lien dans one.html qui mène à deux.html, je veux que cela fonctionne correctement. Chargement de toutes les destinations possibles pour les liens dans one.html juste au cas où l'un des liens est cliqué semble maladroit. Mais peut-être que ce n'est pas ce que vous dites. – mwt

+0

À un moment où j'essayais de résoudre ce problème, j'ai trouvé que laisser UIWebView choisir l'URL de base en appelant 'loadRequest:' avec un fichier url ne fonctionnait pas, donc je vous suggérais d'éviter cet appel. Si vous n'utilisez pas 'loadRequest:', alors peut-être vous pouvez vous connecter la demande dans 'webView: shouldStartLoadWithRequest: navigationType:' et voir ce qui est chargé lorsque vous cliquez sur un lien. – drawnonward

0

Cela a fonctionné pour moi:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"html"]]]]; 

webView est le nom de votre UIWebView et fileName est le nom de votre local HTML.

Questions connexes