接口
GioAppInfo
描述 [源]
interface Gio.AppInfo : GObject.Object
关于已安装应用程序的信息以及启动它的方法(带有文件参数)。
GAppInfo
和 GAppLaunchContext
用于描述和启动系统中安装的应用程序。
截至 GLib 2.20 版本,即使应用程序请求了 URI(而不是 POSIX 路径),在调用 g_app_info_launch()
时,URI 将始终转换为 POSIX 路径(使用 g_file_get_path()
)。例如,对于基于桌面文件的应用程序,如果具有以下 Exec 键
Exec=totem %U
以及单个 URI,例如 sftp://foo/file.avi
,则将传递 /home/user/.gvfs/sftp on foo/file.avi
。这将仅在有合适的一组 GIO 扩展(例如与 FUSE 支持编译的 GVfs 2.26)可用和运行时才有效;如果不是这种情况,将未修改的 URI 传递给应用程序。当然,一些 URI(例如 mailto:
)无法映射到 POSIX 路径(在 GVfs 中没有为其创建 FUSE 挂载);此类 URI 将未修改地传递给应用程序。
对于 GVfs 2.26 及以后的版本,POSIX URI 将在 GFile
构造函数中映射回 GIO URI(因为 GVfs 实现了 GVfs 扩展点)。因此,如果应用程序需要检查 URI,它需要使用 g_file_get_uri()
或类似的在 GFile
上。换句话说,应用程序不能假设传递给例如 g_file_new_for_commandline_arg()
的 URI 等于 g_file_get_uri()
的结果。以下示例说明了这一点
GFile *f;
char *uri;
file = g_file_new_for_commandline_arg (uri_from_commandline);
uri = g_file_get_uri (file);
strcmp (uri, uri_from_commandline) == 0;
g_free (uri);
if (g_file_has_uri_scheme (file, "cdda"))
{
// do something special with uri
}
g_object_unref (file);
此代码将在将 cdda://sr0/Track 1.wav
和 /home/user/.gvfs/cdda on sr0/Track 1.wav
传递到应用程序时工作。应注意,通常不建议应用程序依赖于特定 URI 的格式。不同的启动器应用程序(例如文件管理器)对给定 URI 的含义可能有不同的理解。
先决条件
为了实现 AppInfo,您的类型必须从 GObject
继承。
函数
g_app_info_get_all_for_type
获取包括推荐和后备 GAppInfo
的所有给定内容类型 GAppInfo
的列表。请参阅 g_app_info_get_recommended_for_type()
和 g_app_info_get_fallback_for_type()
。
g_app_info_get_default_for_type_finish
完成由 g_app_info_get_default_for_type_async()
启动的默认 GAppInfo
查找。
since: 2.74
g_app_info_get_default_for_uri_scheme_async
异步获取用于处理具有给定 URI 方案的默认应用程序。URUI
方案是 URI 的初始部分,到但不包括冒号(例如 http
、ftp
或 sip
)。
since: 2.74
g_app_info_get_default_for_uri_scheme_finish
完成由 g_app_info_get_default_for_uri_scheme_async()
启动的默认 GAppInfo
查找。
since: 2.74
g_app_info_reset_type_associations
删除由g_app_info_set_as_default_for_type()
、g_app_info_set_as_default_for_extension()
、g_app_info_add_supports_type()
或g_app_info_remove_supports_type()
所做的所有类型关联更改。
自:2.20
实例方法
g_app_info_launch
启动应用程序。将files
作为参数传递给启动的应用程序,使用可选的context
获取有关启动程序详细信息的信息(如它在哪个屏幕上)。如果出错,将相应设置error
。
g_app_info_launch_uris
启动应用程序。将uris
作为参数传递给启动的应用程序,使用可选的context
获取有关启动程序详细信息的信息(如它在哪个屏幕上)。如果出错,将相应设置error
。如果应用程序只支持在命令行中作为其调用一部分的一个URI,则会为应用程序启动多个实例。
g_app_info_set_as_last_used_for_type
将应用程序设置为特定类型的最后使用应用程序。这会使应用程序在由 g_app_info_get_recommended_for_type()
返回的列表中显示在首位,而不管该内容类型的默认应用程序是什么。
接口结构
struct GioAppInfoIface {
GTypeInterface g_iface;
GAppInfo* (* dup) (
GAppInfo* appinfo
);
gboolean (* equal) (
GAppInfo* appinfo1,
GAppInfo* appinfo2
);
const char* (* get_id) (
GAppInfo* appinfo
);
const char* (* get_name) (
GAppInfo* appinfo
);
const char* (* get_description) (
GAppInfo* appinfo
);
const char* (* get_executable) (
GAppInfo* appinfo
);
GIcon* (* get_icon) (
GAppInfo* appinfo
);
gboolean (* launch) (
GAppInfo* appinfo,
GList* files,
GAppLaunchContext* context,
GError** error
);
gboolean (* supports_uris) (
GAppInfo* appinfo
);
gboolean (* supports_files) (
GAppInfo* appinfo
);
gboolean (* launch_uris) (
GAppInfo* appinfo,
GList* uris,
GAppLaunchContext* context,
GError** error
);
gboolean (* should_show) (
GAppInfo* appinfo
);
gboolean (* set_as_default_for_type) (
GAppInfo* appinfo,
const char* content_type,
GError** error
);
gboolean (* set_as_default_for_extension) (
GAppInfo* appinfo,
const char* extension,
GError** error
);
gboolean (* add_supports_type) (
GAppInfo* appinfo,
const char* content_type,
GError** error
);
gboolean (* can_remove_supports_type) (
GAppInfo* appinfo
);
gboolean (* remove_supports_type) (
GAppInfo* appinfo,
const char* content_type,
GError** error
);
gboolean (* can_delete) (
GAppInfo* appinfo
);
gboolean (* do_delete) (
GAppInfo* appinfo
);
const char* (* get_commandline) (
GAppInfo* appinfo
);
const char* (* get_display_name) (
GAppInfo* appinfo
);
gboolean (* set_as_last_used_for_type) (
GAppInfo* appinfo,
const char* content_type,
GError** error
);
const char** (* get_supported_types) (
GAppInfo* appinfo
);
void (* launch_uris_async) (
GAppInfo* appinfo,
GList* uris,
GAppLaunchContext* context,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
);
gboolean (* launch_uris_finish) (
GAppInfo* appinfo,
GAsyncResult* result,
GError** error
);
}
应用程序信息接口,用于操作系统可移植性。
接口成员
g_iface |
|
父接口。 |
|
dup |
|
复制一个 |
|
equal |
|
检查两个 |
|
get_id |
|
获取一个字符串标识符,用于标识一个 |
|
get_name |
|
获取 |
|
get_description |
|
获取由 |
|
get_executable |
|
获取 |
|
get_icon |
|
launch |
|
使用 |
|
supports_uris |
|
指示指定的应用程序是否支持启动URI。 |
|
supports_files |
|
指示指定的应用程序是否接受文件名参数。 |
|
launch_uris |
|
使用列表中的URI启动应用程序。 |
|
should_show |
|
返回应用程序是否应显示(例如,获取已安装应用程序列表时)。 FreeDesktop.Org 启动通知规范。 |
|
set_as_default_for_type |
|
将应用程序设置为特定内容类型的默认应用程序。 |
|
set_as_default_for_extension |
|
将应用程序设置为特定文件扩展名的默认应用程序。 |
|
add_supports_type |
|
向 |
|
can_remove_supports_type |
|
检查从 |
|
remove_supports_type |
|
从 |
|
can_delete |
|
检查一个 |
|
do_delete |
|
删除一个 |
|
get_commandline |
|
获取 |
|
get_display_name |
|
获取 |
|
set_as_last_used_for_type |
|
将应用程序设置为最后使用。请参阅 |
|
get_supported_types |
|
检索 |
|
launch_uris_async |
|
异步使用列表中的URI启动应用程序。 (自 2.60) |
|
launch_uris_finish |
|
完成由 |
虚方法
gio.AppInfo.launch
启动应用程序。将files
作为参数传递给启动的应用程序,使用可选的context
获取有关启动程序详细信息的信息(如它在哪个屏幕上)。如果出错,将相应设置error
。
gio.AppInfo.launch_uris
启动应用程序。将uris
作为参数传递给启动的应用程序,使用可选的context
获取有关启动程序详细信息的信息(如它在哪个屏幕上)。如果出错,将相应设置error
。如果应用程序只支持在命令行中作为其调用一部分的一个URI,则会为应用程序启动多个实例。
gio.AppInfo.set_as_last_used_for_type
将应用程序设置为特定类型的最后使用应用程序。这会使应用程序在由 g_app_info_get_recommended_for_type()
返回的列表中显示在首位,而不管该内容类型的默认应用程序是什么。