2010-06-14 11 views
1

Comment formater un NSURL (quel chemin, ou fonction de générateur de chemin) pour que je puisse afficher un fichier local téléchargé (PAS une partie de l'application NSBundle) pour une utilisation hors ligne? L'idée est d'accrocher un fichier HTML, de le nettoyer et de le stocker dans la zone de stockage spécifique à l'application iFoo, puis d'utiliser UIWebView pour l'afficher.Comment utiliser UIWebView pour afficher un fichier téléchargé plus tard?

Ensuite, je vais à RTFM sur le travail avec les fichiers sur iFoo (iPhone/iPad) en général, mais tous les conseils de démarrage rapide sont appréciés.

Répondre

1

Vous pouvez lire votre fichier local dans une chaîne à la fin de son téléchargement, puis utiliser le loadHTMLString:baseURL: de UIWebView pour charger le code HTML à partir de cette chaîne. Utilisez les chemins relatifs et définissez le bon baseURL:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *yourFolderPath = [[paths objectAtIndex:0] stringByAppendingPathComponent: @"yourFolder"]; 
NSString *filePath = [yourFolderPath stringByAppendingPathComponent: @"yourFile.htm"]; 
NSString *fileContents = [NSString stringWithContentsOfFile: filePath]; 
NSURL *baseURL = [NSURL fileURLWithPath: yourFolderPath]; 
[yourWebView loadHTMLString: fileContents baseURL: baseURL]; 
+0

Merci, c'est très intéressant. Cependant, je préférerais mettre un fichier HTML et n'importe quel CSS (etc.) dans un répertoire ensemble (ou tout ce que iFoo utilise à la place d'un répertoire/dossier). Je suppose que le vrai problème reste le stockage du fichier (s), puis en fournissant un chemin d'accès à cette cachette. Je suis trop ignorant, malheureusement. (encore, c'est une astuce cool, et vous permet de donner un contexte/dossier/dir pour les chemins relatifs hors du texte). – Roboprog

+0

@Roboprog J'ai modifié ma réponse pour résoudre vos problèmes. Vous devez utiliser des chemins de fichier relatifs pour vos css et images dans votre fichier html, de sorte que la définition de l'URL de base de loadHTMLString de UIWebView permette de rechercher les fichiers dans le dossier spécifique pointé par lui. – luvieere

+0

Merci encore pour la mise à jour. Il ressemble à NSDocumentDirectory (probablement imbriqué sous NSHomeDirectory en tant que "./Documents") peut être utilisé paver un NSURL pour faire le travail. Maintenant, pour générer du faux contenu et l'essayer! – Roboprog

Questions connexes