在linux自定义协议,让浏览器可以调用本地程序

在linux自定义协议,让浏览器可以调用本地程序

原文地址:[在linux自定义协议,让浏览器可以调用本地程序 (icode9.com)](https://www.icode9.com/content-3-133740.html)

第一种是在gnome桌面环境下,执行以下步骤 并且重启系统

  • 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桌面环境下:

  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.将foo.desktop 放置到~/.local/share/applications/或者/usr/share/applications/;执行命令:update-desktop-database

3.注册foo协议:xdg-mime default foo.desktop x-scheme-handler/foo
4.html示例

<html>

    <body>
        <a href="foo:xxx">gd test</a>
    </body>

</html>

参考于

https://askubuntu.com/questions/514125/url-protocol-handlers-in-basic-ubuntu-desktop

解释说明:

第一个步骤中的第一个foo代表你的协议,例如你最终在浏览器应该输入“foo://123”;第二个foo代表你要执行的本地命令。