如何使用系统的webbrowser打开文件?

时间:2015-12-27 00:36:09

标签: genie

我创建了一个创建html文件的函数。如何在用户系统的浏览器中打开它?

在python中我会导入webbrower,然后调用webbrowser.open(" file.html")。

如何在精灵中获得相同的结果?

2 个答案:

答案 0 :(得分:2)

Python webbrowser模块是打开浏览器窗口的跨平台方式。我不知道Genie或Vala的类似跨平台模块,因此您必须使用特定于平台的命令。

在基于Linux的平台上xdg-open是跨桌面以标准方式打开应用程序的命令。这应该适用于Gnome,KDE,XFCE等现代版本。

从GLib 2.40开始,在Genie中打开外部命令的首选方法是使用GLib GIO的GSubprocess。在Genie中,这将是:

init
    try
        var command = new Subprocess( SubprocessFlags.NONE,
                                      "xdg-open",
                                      "http://stackoverflow.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。请参阅Subprocess - ValadocSubprocessFlags - Valadoc

只要该文件的MIME类型已配置为在浏览器中打开,它也可用于在Web浏览器中打开本地文件。 HTML文件应该没问题。

答案 1 :(得分:1)

Linux的一个可行选项是:

Process.spawn_command_line_async(" sensible-browser file.html")