2012-03-16 3 views
0

J'ai des problèmes avec un wrapper GUI autour d'un client de messagerie Web. Fondamentalement, quand quelqu'un publie un lien dans la salle de chat, je veux ouvrir dans le navigateur par défaut lorsque l'on clique sur. J'utilise le webkit decidePolicyForNavigationAction.webView decidePolicyForNavigationAction pour ouvrir un lien dans un navigateur par défaut

- (void)webView:(WebView *)sender decidePolicyForNavigationAction:(NSDictionary *)actionInformation 
    request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id <WebPolicyDecisionListener>)listener 
{ 
NSString *host = [[request URL] host]; 

    if (![host hasSuffix:@"chatsimply.com"]) 
    { 
     [listener ignore]; 
     NSWorkspace * ws = [NSWorkspace sharedWorkspace]; 
     [ws openURL:request.URL]; 
    } 

     [listener use]; 
} 

Cela ne semble pas être vu les liens dans la salle de conversation et je ne sais pas pourquoi. J'ai fait des recherches sur certains forums et sur la documentation d'Apple sans trop de chance, donc toute aide ou documentation sur la façon de gérer cela serait grandement appréciée.

Répondre

0

Si vous vouliez dire ouvrir les liens dans Safari, alors cela devrait le faire.

[[UIApplication sharedApplication] openURL:request.URL]; 

Si les liens ne sont pas mis en évidence (ou ce que vous essayez de le faire), alors je suggère NSLogging la chaîne hôte pour trouver si elle a le suffixe que vous voulez.

+0

Je peux juste ouvrir les liens juste, le problème principal est que lorsque je clique sur un lien qui a été posté dans le salon de discussion (disons apple.com) il ne signale pas à ce délégué que le lien a été sélectionné. Si je change mon URL par défaut je charge de chatsimply à google il s'ouvre dans mon navigateur par défaut. Mais quand je suis dans la salle de discussion chatsimply et que je sélectionne un lien, je ne vois même pas ce lien apparaître quand je connecte les URL de l'hôte. –

+0

Oh, c'est ce que vous vouliez dire. Désolé, je n'ai pas de réponse pour ça. Bonne chance quand même. :) –

+0

@ACMacalister Avez-vous déjà résolu ce problème pour des liens ajoutés dynamiquement? Je rencontre toujours le même problème avec le délégué ne tirant pas pour les liens dynamiques qui ont été ajoutés après le chargement de la page initiale. – Luke

Questions connexes