我的要求是在 Linux 系统中使用 Firefox 运行自定义协议(protocol)处理程序。
我通过在/usr/share/applications 中创建 myapp.desktop 文件,成功在 Ubuntu 中添加了协议(protocol)处理程序。内容大概是这样的。
[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 的 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
请帮助使协议(protocol)处理程序在 centos 和 opensuse 中工作。 我使用的是centos-6.2和opensuse 11.2
提前致谢。
最佳答案
我找到原因了。运行 gconftool 会添加 url 处理程序。我将这些命令作为 rpm post 脚本的一部分运行,该脚本需要 root 权限。因此 url 处理程序未向用户注册。一旦以用户身份手动运行,当我在浏览器中输入 myapp://时,firefox 就可以调用 myapp。
关于centos - 在 centos、opensuse 中通过 x-scheme-handler 设置协议(protocol)处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11977779/