[résolu] impossible d'utiliser le PolicyDelegate du Webkit

mpepito13mpepito13 Membre
juillet 2011 modifié dans Objective-C, Swift, C, C++ #1
Bonjour,

j'utilise une webview dans mon application.
Je souhaiterais faire en sorte que le navigateur par défaut se lance lorsqu'on clique sur certains liens.

Pour l'instant j'ai le code suivant dans MonAppDelegate.m :
- (void) awakeFromNib<br />{<br />...<br />&nbsp; &nbsp; [myWebView setPolicyDelegate:self];<br />}<br /><br />- (void)webView:(WebView *)sender decidePolicyForNewWindowAction:(NSDictionary *)actionInformation <br />&nbsp; &nbsp; &nbsp; &nbsp; request:(NSURLRequest *)request newFrameName:(NSString *)frameName decisionListener:(id)listener {<br />&nbsp; &nbsp; NSLog(@&quot;deciding policy for new window action&quot;);<br />&nbsp; &nbsp; [ [ NSWorkspace sharedWorkspace ] openURL:[ request URL ]];<br />}<br />


Malheureusement la méthode webView: decidePolicyForNewWindowAction:... n'est jamais appelée !
Je planche sur ces quelques lignes de codes depuis quelques heures maintenant mais sans résultat.

Qu'est-ce que j'ai bien pu louper ??

Merci,
arnaud

Réponses

  • AliGatorAliGator Membre, Modérateur
    14:57 modifié #2
    La connection du delegate.
  • mpepito13mpepito13 Membre
    14:57 modifié #3
    Bonjour AliGator,

    tu entends par quoi par "connection du delegate" ? Depuis InterfaceBuilder ?
  • AliGatorAliGator Membre, Modérateur
    14:57 modifié #4
    Bah par exemple, oui (tu peux le faire par code aussi mais c'est en effet plus simple en faisant la connexion via IB)... enfin comme quand tu utilises n'importe quel delegate quoi, rien que du grand classique, la même chose que pour tous les delegates de Cocoa.
    Si tu n'indiques pas quel objet est le delegate de ta WebView, elle peut pas savoir à  qui envoyer le message ;)
  • mpepito13mpepito13 Membre
    14:57 modifié #5
    C'est pas ce que je fais via le code suivant ??
    [myWebView setPolicyDelegate:self];
    


    il y a vraiment quelque chose que je ne dois pas comprendre !  ???
  • mpepito13mpepito13 Membre
    14:57 modifié #6
    ça y es j'ai compris!

    La méthode decidePolicyForNewWindowAction du PolicyDelegate n'est pas appelé quand on clique sur un lien javascript window.open()
    Elle est appelé uniquement quand on utilise
    &lt;a href=&quot;...&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;
    
    !

    Je vais essayer de suivre ce qui est fait dans ce post

    Merci en tout cas
Connectez-vous ou Inscrivez-vous pour répondre.