# Comment ouvrir une URL depuis Cocoa?



## SuperCed (6 Février 2003)

Voila, tout est dans le titre sauf que je ne veut pas du selecteur openURL car il ne fonctionne pas sur toutes les configs...

Sinon, existe-il un Apple Event qui permet de faire ca?

Si quelqu'un a de la doc la dessus, ca m'interresse.


----------



## Eddy58 (6 Février 2003)

Comment se fait-il que openURL ne fonctionne pas sur toutes les configs ?

Il ya NSURL aussi qui permet pas mal de manip sur une adresse URL apparemment.


----------



## SuperCed (6 Février 2003)

oui, c'est ca :
[NSURL openURL] mais ca marche pas sur toutes les configs, donc j'ai besoin d'un apple event.


----------



## grenoble (6 Février 2003)

Il faut faire appel à NSWorkSpace
du style:

[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString"tonurl"]]


----------



## SuperCed (6 Février 2003)

Mais je viens de dire que je connais ce selecteur et je cherche une autre methode...


----------



## Gwenhiver (6 Février 2003)

Si tu ne veux vraiment pas utiliser NSURL, tu peux utiliser AppleScript par le biais de NSAppleScript.


----------



## Manu (7 Février 2003)

SuperCed,

Tu sais que tu peux toujours utiliser les fonctions de manipulation d'URL du CoreFoundation  CFURL
tu y trouveras surement ton bonheur.

Manu


----------



## SuperCed (7 Février 2003)

J'ai trouve grace a Valken :
Il faut lancer la commande du terminal : open http://www.macplus.org/  par exemple.

Donc une NSTask qui lance cette comande du terminal.


----------



## SuperCed (7 Février 2003)

Pour CFURL, je sais mais ca m'embetait de rajouter un framework, corefoundation en l'occurence. Mon programme doit etre petit en taille. De plus, je pense que openURL est base sur une methode CoreFoundation.

Merci pour les reponses de tout le monde!


----------



## grenoble (7 Février 2003)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par SuperCed:</font><hr /> * J'ai trouve grace a Valken :
Il faut lancer la commande du terminal : open http://www.macplus.org/  par exemple.

Donc une NSTask qui lance cette comande du terminal.  * 

[/QUOTE]

euh là, j'avoue que je comprends pas.
tu te plains du sélecteur openURL parce qu'il ne fonctionne pas sur toutes les configurations, mais je crois que ta solution est encore plus instable, et elle s'appuie même sélecteur openURL ou le même principe du moins...
pour preuve, ta commande terminal interroge le réglage du tdb Internet dans les Préférences Système pour connaître le navigateur Web favori.
chez moi, ta commande plantait parce que mon navigateur favori pointait vers un navigateur que j'ai depuis longtemps effacé de mon disque.

je n'ai pas trop manipulé NSTask parce que je me pose toujours des questions si un utilisateur a réglé d'autres shells que tcsh qui ne comprendraient pas certaines commandes, comment réagirait NSTask je n'en sais rien. un scénario à tester aussi dans ton cas.


----------



## Gwenhiver (17 Février 2003)

<blockquote><font class="small">Post&eacute; &agrave; l'origine par SuperCed:</font><hr /> * Pour CFURL, je sais mais ca m'embetait de rajouter un framework, corefoundation en l'occurence. Mon programme doit etre petit en taille. De plus, je pense que openURL est base sur une methode CoreFoundation.* 

[/QUOTE]

CoreFoundation est fourni avec l'OS. Il ne sera pas rajouté dans ton application. Et je ne crois pas que linké vers CoreFoundation changerait grand chose à la taille.


----------



## SuperCed (17 Février 2003)

J'ai trouve, je fais un NSTask qui appelle la commande open du terminal.
La commande est du type : open http://www.macg.co/

Et ca marche!

Merci a tous.


----------



## plumber (18 Février 2003)

c'est debile d'utiliser un binaire là open
alors que tu as acces à ces methodes directement ?


----------



## plumber (18 Février 2003)

et ho les gas en c comment tufais appel à un flux
ns url n'est qu'une surdefinition mais ecris un objet qui test
les cas de config

open ca fonctionne c'est un binaire c

explorer il s'ouvre sous toutes les configs alors il font comment
et le finder il se lance aussi pourtant tout ca c'est des appli appelés à demarrer par d'autres appli heheh


----------



## SuperCed (18 Février 2003)

C'est pas debile, maintenant ca marche alors qu'avant, ca marchait pas toujours.

Pour appeler un binaire, tu utilises NSTask.


----------

