利用chromium的外部协议
[list]
[*]注册协议(ubuntu上不用做这一步)
/desktop/gnome/url-handlers/foo/command[/list] gconftool-2 -t string -s ‘foo “%s”’
/desktop/gnome/url-handlers/foo/needs_terminalgconftool-2 -s false -t bool
/desktop/gnome/url-handlers/foo/enabledgconftool-2 -s true -t bool
将设置保存为全局:
/etc/gconf/gconf.xml.defaults/%gconf-tree.xml
假设我们要在网页中实现点击打开本地文件夹的操作,即调用nautilus打开文件管理器,则:
[list]
[*]直接编辑/usr/share/applications/default.list文件,参照apt条目的写法增加一条,例如:
[/list] x-scheme-handler/nautilus=nautilus-web.desktop
[list]
[*]在网页中编写如下代码:
[/list]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>网页调用本地应用 </title>
</head>
<body>
<a id="open_qq" href="nautilus:///opt"> 本地文件夹 </a>
</body>
</html>
[list]
[]由于Chromium会将“nautilus://”一起作为参数传递给nautilus.desktop,因此需要将其从参数中去除,为此需要进行以下操作:
[list]
[]进入/usr/share/applications/目录
[]复制nautilus.desktop文件
[list]
[]sudo cp nautilus.desktop nautilus-web.desktop
[/list][*]编辑nautilus-web.desktop文件,修改 Exec= 一行为:
[/list]
[/list] Exec=nautilus-web.sh %u
其中nuautilus-web.sh是下面需要新建的脚本文件,%u是浏览器传递过来的参数
[list]
[]
[list]
[]在/usr/bin目录下新建nautilus-web.sh,内容如下:
[/list][/list]
#!/bin/sh
STR=$1
STR=${STR##nautilus:\/\/}
nautilus --new-window $STR
主要目的是将参数重nautilus://字符串去掉,得到实际的路径值。
问题:如何直接在desktop文件中引入脚本语言呢?
最终效果如下:



