Webview : loader une page

Paisible.frPaisible.fr Membre
00:24 modifié dans API AppKit #1
Bonjour,

Je debut en Cocoa. J'ai contruit une GUI avec Interface Builder.
Elle est composée de d'un NSButton et d'un WebView.
Le bouton repond bien à¡ l'action en effectuant en NSBeep().
Maintenant je voudrais remplacer le Beep, par le chargement d'une page web dans le WebView.
Quelque chose du genre : [webView takeStringURLFrom: @"http://www.apple.com/"];

J'ai cherché l'API et la syntaxe dans succes.

Merci de votre aide

Réponses

  • Paisible.frPaisible.fr Membre
    00:24 modifié #2
    PRECISIONS :

    1) Oui j'ai bien intégré le framework "webkit" à¡ mon projet :)
    2) J'ai trouvé le code suivant ce matin :

      [[webview mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://gsx.apple.com"]]];
    


    Est-ce que ce serait pas la solution ?
  • BruBru Membre
    00:24 modifié #3
    dans 1194591732:

    PRECISIONS :
    1) Oui j'ai bien intégré le framework "webkit" à¡ mon projet :)
    2) J'ai trouvé le code suivant ce matin :
      [[webview mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://gsx.apple.com"]]];
    

    Est-ce que ce serait pas la solution ?


    Oui, c'est bien la solution...

    .
  • Paisible.frPaisible.fr Membre
    00:24 modifié #4
    Et bien il faut croire que non ! ce n'est pas la bonne solution.

    Mon code est le suivant :
    <br />#import &quot;bofController.h&quot;<br /><br />@implementation bofController<br />-(IBAction)goURL:(id)sender{<br />	NSBeep();<br />	[[theWebView mainFrame]loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@&quot;http://gsx.apple.com&quot;]]];<br />}<br />@end<br />
    


    Et cela ne fonctionne pas. D'une part j'entends bien le Beep mais la page ne se charge pas. D'autre par à  la compilation j'ai deux warning sur le "loadRequest", cà d "loadRequest: not found". Enfin si je tape ESC pour avoir la complétion je n'ai effectivement pas le "loadRequest"

    Si quelqu'un à  une piste ...

    merci
  • Philippe49Philippe49 Membre
    00:24 modifié #5
    Dans le menu Help de XCode, ouvre la documentation

    Dans le searchField, tape loadRequest

    Tu dois arriver à  la page Webframe Class reference

    Remonte en haut de la page tu vois que tu dois inclure un framework

    Si tu l'as inclus, c'est peut-être que cela a été mal fait.
    Pour inclure un framework, sélectionner le dossier framework, clic droit sur add (il y a d'autres façons équivalentes)
    Vérifie que le WebKit framework s'est correctement installé dans ce dossier des framework, et dans la cible :
    target > mon appli > link library with ..

    (ou bien utilise les menus de XCode )
  • Philippe49Philippe49 Membre
    00:24 modifié #6
    Si cela ne suffit pas tu lis le document
    Introduction to Web Kit Objective-C Programming Guide
    dont la référence est dans le TOC de la page Webframe Class Reference
  • BruBru Membre
    00:24 modifié #7
    dans 1194704330:

    Et bien il faut croire que non ! ce n'est pas la bonne solution.


    Ah ben ça alors, la doc Apple serait fausse ?
    Je n'arrive pas à  y croire !
    C'est trop fort là ...

    .
  • Paisible.frPaisible.fr Membre
    00:24 modifié #8
    J'ai jamais dis que la doc était fausse. J'ai juste dis que j'essaye de faire comme dans la doc et que cela marche pas. J'ai forcement du rater quelque chose, mais quoi ??
  • BruBru Membre
    novembre 2007 modifié #9
    Pour fonctionner, il ne faut pas faire grand chose :

    1. créer un webview dans IB, le relier avec l'outlet qui va bien.

    2. dans le projet Xcode, inclure le framework WebKit (clic-droit sur Frameworks dans le "groups & files" > Add > Existing frameworks..., naviguer jusqu'à  /System/Library/Frameworks et choisir WebKit.framework).

    3. dans chaque source utilisant WebKit, inclure #import <WebKit/WebKit.h>.

    Que du classique, quoi...

    .


  • 00:24 modifié #10
    Voilà  je pense que c'est ça qu'il a du oublier :D
  • Paisible.frPaisible.fr Membre
    00:24 modifié #11
    Bonjour j'ai lu vos bon conseils hier matin au travail. Je me les suis imprimé en me disant que je verais tout cela le soir en rentrant chez moi.

    Manque de bol sur l'impression il n'y avait pas les images et pas de connection internet a la maison. Du coup, j'ai quand mis le nez dedans en essayant de me rappeler ce que j'avais lu le matin. Au niveau du Framework c'etait OK, au niveau des #includes pareils, le code de se que je me rapellais avoir vu cela me semblait OK.

    J'ai bidouiller un peu, nottament pour changer l'url par un fichier vu que j'avais pas de net et regardé ce que j'avais fait dans l'Interface Builder. Et la je crois que j'ai mis le doigt sur le probleme, il me semble que j'avais certainement du mal faire le lien entre le controler et le WebView.

    Donc, la ca fonctionne : quand je clique sur mon bouton il m'affiche la fichier HTML en local sur mon disque.
    Par contre j'ai un warning.

    Des que j'ai une connection je restete avec une URL sur le web et je reviens vers vous pour le warning si je trouve pas.

    Merci beaucoup à¡ tous.
  • Paisible.frPaisible.fr Membre
    00:24 modifié #12
    Bonjour, hier soir j'avais un peu de connection internet et un peu de temps. J'ai donc pu verifier tout. Apparement aucun probleme avec le chargement d'une page sur internet. Ca fonctionne on-line comme off-line nickel. Pour les warnings j'ai trouvé : c'est moi qui n'etait pas bien reveillé. En fait j'avais mis :
    #import &lt;WebKit/WebView.h&gt;
    

    au lieu de
    #import &lt;WebKit/WebKit.h&gt;
    


    Maintenant tout est rentré dans l'ordre ca fonctionne et plus de warnings.

    Prochaine etapes :
    - remplir un NSOutlineView à¡ partir d'un fichier XML avec pour chaque item une URL
    - declencher une action qd on clique sur un item
    - ouvrir dans le NSWebView l'url correspodant au clic sur l'item de la NSOutlineView

    J'ai lu un peu le tuto sur les NSTables et NSOutlineView du forum, j'arrive a peupler la NSOutlineView par programmation (sans passer par le fichier XML) et a recuperer le clic sur le NSOutlineView pour declencher une action (un beep pour le moment).  Ca me plait pas trop car les donnees a afficher dans le NSOutlineView sont codees en dur et dans mon cas elles risques d'evoluer. De plus je sais pas comment associer une URL a un item et le retrouver lors du clic. En plus j'ai pas forcement bien compris les concepts derrieres, j'ai plus fait du copier-coler  >:(

    J'ai vu un tuto sur Projet Omega et un autre sur Apple ADC mais j'ai pas encore eu le temps de me pencher dessus.
    Si vous en avez d'autres à¡ me suggerer je suis preneur.

    Merci.
Connectez-vous ou Inscrivez-vous pour répondre.