2

我的要求是在 linux 系统中使用 firefox 运行自定义协议处理程序。

通过在 /usr/share/applications 中创建 myapp.desktop 文件,我已经在 Ubuntu 中成功添加了协议处理程序。内容是这样的。

[Desktop Entry]
Name=myapp
Comment= My Custom protocol handler
Exec=/path/to/my/application %U
Icon=myicon
Terminal=0
Type=Application
X-MultipleArgs=True
MimeType=x-scheme-handler/myapp
Encoding=UTF-8
Categories=Network;Application;

之后我运行更新桌面数据库。一切就绪,我可以在 Ubuntu 的 firefox 浏览器或 Fedora 中输入 myapp://,然后 myapp 被调用。

虽然相同的过程在 Centos 或 Opensuse 中不起作用。我在 centos 和 opensuse 中尝试了以下内容,但没有奏效。

gconftool-2 -t string -s /desktop/gnome/url-handlers/myapp/command "/path/to/my/app %U"
gconftool-2 -s /desktop/gnome/url-handlers/myapp/needs_terminal false -t bool
gconftool-2 -t bool -s /desktop/gnome/url-handlers/myapp/enabled true

请帮助使协议处理程序在 centos 和 opensuse 中工作。我正在使用 centos-6.2 和 opensuse 11.2

提前致谢。

4

1 回答 1

2

我弄清楚了原因。运行 gconftool 确实会添加 url 处理程序。我将这些命令作为 rpm post 脚本的一部分运行,该脚本需要 root 权限。因此 url 处理程序没有向用户注册。一旦以用户身份手动运行,当我在浏览器中键入 myapp:// 时,firefox 可以调用 myapp。

于 2012-08-16T18:07:11.860 回答