2012-08-15 196 views
1

我的要求是在linux系统中使用firefox运行自定义协议处理程序。在centos中通过x-scheme-handler设置协议处理程序,opensuse

我通过在/ 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; 

之后,我运行update-desktop-database。所有设置和我都能够在Ubuntu或Fedora的firefox浏览器中键入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和openuse中工作。 我使用的是centos-6.2和opensuse 11.2

在此先感谢。

+0

在我跑过的第一个命令中有错字。它是 gconftool-2 -t string -s/desktop/gnome/url-handlers/myapp/command“/ path/to/my/app%s” – 2012-08-15 21:48:30

回答

2

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