Abrindo o browser padrão…
- Posted by acidx on October 27th, 2006 filed in c, geek, glib, programming
- Comment now »
Essa tarefa é um pouco chata em ambientes Unix: não há uma maneira padrão (salvo o Portland, que ainda não deve estar disponível na base já instalada), e perguntar para o usuário qual o browser dele não é uma opção. A rotina abaixo deve ser suficiente e funcionar bem em qualquer programa que use a GLib. Em suma, ela vai tentando abrir a URL fornecida com browsers conhecidos, tentando com o já citado Portland (xdg-open), gnome-open, kfmclient (konqueror), dentre outras opções. Se tudo for esgotado, uma mensagem é mostrada ao usuário dizendo que não foi possível encontrar um browser.
void
open_url(gchar *url)
{
const gchar *browsers[] = { "xdg-open", "gnome-open",
"kfmclient openURL", "sensible-browser",
"firefox", "epiphany", "galeon", "mozilla",
"opera", "konqueror", "links -g", NULL};
gint i;
for (i = 0; browsers[i]; i++) {
gchar *cmdline = g_strdup_printf("%s '%s'", browsers[i], url);
if (g_spawn_command_line_async(cmdline, NULL)) {
g_free(cmdline);
return;
}
g_free(cmdline);
}
g_warning("Couldn't find a Web browser to open URL %s.", url);
}












Leave a Comment