2015-04-01 5 views
0

J'essaye de charger un fichier d'image local dans un UIWebView. Est-il nécessaire de créer un fichier HTML et de charger l'image dans celui-ci ou puis-je charger directement l'image dans une vue Web?Chargement d'une image locale directement dans un UIWebView sans HTML?

Ceci est le code que j'utilise actuellement pour charger l'image dans la vue Web, mais elle apparaît vide.

NSURL *url = [NSURL fileURLWithPath:localFilePath isDirectory:NO]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[self.webView loadRequest:request]; 

Répondre

1

UIWebView a une méthode loadData:MIMEType:textEncodingName:baseURL:. Plutôt que d'écrire HTML avec l'image, vous pouvez faire quelque chose de simple comme ça

NSData *imageData = [NSData dataWithContentsOfURL:fileURL]; 
[self.webView loadData:imageData MIMEType:@"image/..." textEncodingName:@"utf-8" baseURL:nil]; 

l'argument MIMEType devrait être modifié à tout type MIME l'image est. (par exemple jpeg est image/jpeg)

+0

Merci pour la réponse. Cela fonctionnera aussi pour moi quand je téléchargerai d'autres types de fichiers que UIWebView peut gérer. –

0

Pourquoi vous essayez de charger une image dans un UIWebView? Cela semble être une perte pour moi. Cela étant dit, je dirais honnêtement que la façon la plus simple de faire ce que vous essayez d'accomplir est d'ajouter un UIImageView en tant que sous-vue de cette vue web.

Vous pouvez aussi le faire, je pense, si vous vouliez injecter une chaîne HTML référence à une image stockée dans votre paquet:

// Given a UIWebView property called webView, and 
// an image named "foo.png" in your main bundle. 
NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; 
NSURL *bundlePathURL = [NSURL fileURLWithPath:bundlePath]; 
[webView loadHTMLString:@"<img src=\"foo.png\" />" baseURL:bundlePathURL]; // Where foo.png is at that path, hopefully. 
+0

Ce code reste là non testé, mais je pense que devrait faire l'affaire. Le bit important est la partie baseURL de l'appel de méthode -loadHTMLString: baseURL:. Cela indique à la vue Web que toutes les références relatives dans son corps HTML doivent regarder ce répertoire. – josefdlange

+0

Une image est seulement l'une des options possibles, je vais aussi chercher à afficher des fichiers PDF qui, je crois, peut être fait à travers une vue web. –