在linux自定义协议,让浏览器可以调用本地程序
第一种是在gnome桌面环境下(只适用rhel6),执行以下步骤 并且重启系统
- gconftool-2 -t string -s /desktop/gnome/url-handlers/foo/command 'foo "%s"'
- gconftool-2 -s /desktop/gnome/url-handlers/foo/needs_terminal false -t bool
- gconftool-2 -s /desktop/gnome/url-handlers/foo/enabled true -t bool
第二种:是在kde桌面环境下(同样适用于centos7):
1. 新建一个foo.desktop,内容如下:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/foo %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/foo;
2.普通用户跟root用户配置不一样
root用户配置:
- 拷贝文件
cp foo.desktop /usr/share/applications/
- 更新
update-desktop-database
- 注册协议
xdg-mime default foo.desktop x-scheme-handler/foo
普通用户配置
- 拷贝文件
cp foo.desktop ~/.local/share/applications/;
- 更新
update-desktop-database ~/.local/share/applications/;
- 注册foo协议:
cd ~/.local/share/applications/;
xdg-mime default foo.desktop x-scheme-handler/foo
参考于
gnome - URL protocol handlers in basic Ubuntu Desktop - Ask Ubuntu
解释说明:
第一个步骤中的第一个foo代表你的协议,例如你最终在浏览器应该输入“foo://123”;第二个foo代表你要执行的本地命令。