Как открыть файл с помощью системного веб-браузера?
Я сделал функцию, которая создает HTML-файл. Как открыть его в браузере в системе пользователя?
В Python я бы импортировал webbrower и затем вызвал webbrowser.open("file.html").
Как добиться такого же результата в джинне?
2 ответа
Питон webbrowser
Модуль - это кроссплатформенный способ открытия окна браузера. Я не знаю подобного кроссплатформенного модуля для Genie или Vala, поэтому вам придется использовать команды, специфичные для платформы.
На платформе Linux xdg-open
это команда для стандартного открытия приложения на рабочих столах. Это должно работать на современных версиях Gnome, KDE, XFCE и других.
Начиная с GLib 2.40, предпочтительным способом открыть внешнюю команду в Genie является использование GSub-процесса GLib GIO. В Genie это будет что-то вроде:
init
try
var command = new Subprocess( SubprocessFlags.NONE,
"xdg-open",
"http://stackru.com/tags/genie/"
)
command.wait()
except error:Error
print error.message
Это должно быть скомпилировано с пакетом GIO:
valac --pkg gio-2.0 my_xdg_open_example.gs
Приведенный выше пример ожидает завершения команды, GSubprocess может использоваться асинхронно. Вы также можете легко получить доступ к STDIN, STDOUT и STDERR. См. Подпроцесс - Valadoc и SubprocessFlags - Valadoc
Это также можно использовать для открытия локальных файлов в веб-браузере, если MIME-тип для этого файла настроен на открытие в браузере. HTML-файлы должны быть в порядке.
Один из возможных вариантов для Linux:
Process.spawn_command_line_async ("sensible-browser file.html")