Charger un fichier html avec le webkit

elaumelaum Membre
10:35 modifié dans API AppKit #1
Bonjour à  tous.
C'est mon premier post sur ce forum et je tenais a remercier ses pilier pour les "tutoriaux" de qualité comme par exemple dans "Le glossaire des termes Cocoa/Obj-C".  :D

Voici mon problème
J'ai fait un petit programme sans prétention en html/css/javascript.
J'avais l'habitude de l'utiliser à  traver Safari.
J'ai entendu parler du webkit et j'essaye de faire une application cocoa simple.

Ma fenetre contient juste aWebView qui est une WebView (tien tien  ;))

- (void)awakeFromNib <br />{<br />	NSString *CheminDeBase;<br />	CheminDeBase = [[NSString alloc] initWithFormat:@&quot;file://localhost/Users/Elaum/Desktop/Secession/Secession.html&quot;];<br />	[[aWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:CheminDeBase]]];<br />	NSLog(@&quot;aWebView : %@&quot;,[[aWebView mainFrame] URL]);<br />}<br />


J'ai deux problèmes, le premier est que l'application ne semble rien charger du tout.
Le second est que mon CheminDeBase dépend de mon ordinateur.

Pour le second problème, je pense avoir une petite idée :  si il y aurait un moyen pour utiliser un "chemin relatif" qui permettrait d'acceder au Contents/Ressources dans le paquet de l'application alors ça résoudrait mon problème.

Mais bon mon niveau en Objective-C est minimal et je suis encore moins bon en anglais c'est dire  :'(

J'espère être assez clair. :why?:

Réponses

  • elaumelaum Membre
    10:35 modifié #2
    j'ai résolu mon premier problème, j'avais pas relié la webview à  mon outlet dans le nib.  :o
    J'ai modifié le code comme suit et maintenant, il peu charger des pages internet (http://)
    Par contre quand j'essaye avec des file:// ca me donne une erreur de segmentation :why?:
    - (void)awakeFromNib <br />{<br />	NSString *CheminDeBase;<br />	CheminDeBase = [[NSString alloc] initWithFormat:@&quot;file://localhost/Users/Elaum/Desktop/dossier%20sans%20titre/Secession/Secession.html&quot;];<br />	NSLog(@&quot;CheminDeBase : %@&quot;,CheminDeBase);<br />	[[aWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:CheminDeBase]]];<br />	NSLog(@&quot;aWebView : %@&quot;,[aWebView mainFrame]);<br />	[CheminDeBase release];<br />}<br />
    
  • elaumelaum Membre
    10:35 modifié #4
    Merci.
    Ca résoud mon premier problème, maintenant ça charge mon fichier si je lui donne le bon chemin.
    En utilisant la méthode stringByStandardizingPath, sur la chaine @~/toto, j'obtient bien le chemin relatif. :)

    NSString *shortPath, *absolutePath;<br />	shortPath = [[NSString alloc] initWithFormat:@&quot;~/toto&quot;];<br />	absolutePath = [shortPath stringByStandardizingPath];<br />	[[aWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:absolutePath]]];<br />
    


    En revanche, j'ai cherché sur plusieurs site (macdevcenter, project omega...) et j'ai rien trouvé pour obtenir le chemin de l'application. (Pour pouvoir accéder au dossier content dans l'application.)
    Personne ne sait comment faire. :why?:
  • BruBru Membre
    10:35 modifié #5
    dans 1135245242:

    En revanche, j'ai cherché sur plusieurs site (macdevcenter, project omega...) et j'ai rien trouvé pour obtenir le chemin de l'application. (Pour pouvoir accéder au dossier content dans l'application.)
    Personne ne sait comment faire. :why?:


    <br />contentsPath=[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@&quot;/Content&quot;];<br />
    
  • elaumelaum Membre
    10:35 modifié #6
    Merci beaucoup  :adios!:
Connectez-vous ou Inscrivez-vous pour répondre.