60 votes

Ouvrir le navigateur par défaut dans Ruby

En Python, vous pouvez faire cela :

import webbrowser
webbrowser.open_new("http://example.com/")

Il ouvrira l'url passée dans le navigateur par défaut.

Y a-t-il un équivalent en ruby ?

91voto

Ryan McGeary Points 76053

Solution multiplateforme :

Tout d'abord, installez le Lancement gemme :

$ gem install launchy

Ensuite, vous pouvez exécuter ceci :

require 'launchy'

Launchy.open("http://stackoverflow.com")

0 votes

Cela ne semble pas fonctionner avec les urls de données. (Avez-vous réussi à le faire fonctionner avec les urls de données ? Sinon, avez-vous une autre suggestion ?)

2 votes

En théorie, il devrait fonctionner avec n'importe quel schéma enregistré auprès du système d'exploitation. Les URI de données ne sont généralement pas enregistrés auprès du système d'exploitation.

0 votes

Pouvez-vous me dire si je peux vérifier ou non si l'url ouverte en utilisant launchy est fermée ou terminée ou non ? @RyanMcGeary

35voto

user1931928 Points 131

Cela devrait fonctionner sur la plupart des plateformes :

link = "Insert desired link location here"
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
  system "start #{link}"
elsif RbConfig::CONFIG['host_os'] =~ /darwin/
  system "open #{link}"
elsif RbConfig::CONFIG['host_os'] =~ /linux|bsd/
  system "xdg-open #{link}"
end

0 votes

C'est génial, merci ! N'oubliez pas de mettre ces chaînes de caractères entre guillemets au cas où elles contiendraient des métacaractères susceptibles de perturber le shell - un & dans une chaîne de requête URL est un exemple classique. Mettez l'URL entre guillemets simples pour Mac, Linux et BSD ; entre guillemets doubles pour Windows. Sous Windows, une paire supplémentaire de guillemets doubles est nécessaire ( c'est-à-dire , system "start \"\" \"#{link}\"" ) en raison d'une bizarrerie dans la manière dont les start gère les arguments cités.

32voto

Ryan McGeary Points 76053

Solution réservée aux Mac :

system("open", "http://stackoverflow.com/")

ou

`open http://stackoverflow.com/`

9voto

James Baker Points 2936

La solution Win la plus simple :

\`start http://www.example.com\`

8voto

damage3025 Points 41

Solution uniquement pour Linux

system("xdg-open", "http://stackoverflow.com/")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X