Ubuntu自定义URL协议处理程序

我想问一个问题,但我会先显示我的文件

<html> <body> <a href="cloudje:firefox">Open firefox</a> </body> </html> 

我的.desktop文件:

 [Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Terminal=false Exec=/usr/bin/cloudjerun -c gedit Name[en_US]=Gedit Comment[en_US]=Small, easy-to-use program to access iTunesU media Name=TunesViewer Comment=Small, easy-to-use program to access iTunesU media Icon=/usr/share/icons/hicolor/scalable/apps/tunesview.svg Categories=Application;Network; MimeType=x-scheme-handler/cloudje; Comment[en_US.utf8]=Small, easy-to-use program to access iTunesU media 

教程: http : //jarrpa.net/2011/10/28/creating-custom-url-handlers-in-ubuntu-11-04-11-10-gnome-3-0/

好的,这很酷。 .desktop文件将被放置在/ usr / share / applications中。 如果执行命令“xdg-open cloudje:firefox”或类似“xdg-open cloudje:example”的命令,它将始终使用名为“cloudjerun”的Python脚本执行gedit。 如何使用命令“xdg-open cloudje:firefox”执行firefox?

我需要将'Exec = / usr / bin / cloudjerun -c gedit'replace为'Exec = / usr / bin / cloudjerun -c%U'或'Exec = / usr / bin / cloudjerun -c%s' ?

谢谢,Amanush。

在桌面文件中,Exec可能有以下参数

 Add... Accepts... %fa single filename. %F multiple filenames. %ua single URL. %U multiple URLs. %da single directory. Used in conjunction with %f to locate a file. %D multiple directories. Used in conjunction with %F to locate files. %na single filename without a path. %N multiple filenames without paths. %ka URI or local filename of the location of the desktop file. %v the name of the Device entry. 

所以在你的情况下,你可以调整你的执行条目,如下所述:

 Exec=/usr/bin/cloudjerun -c %u 

请注意,%u是完整的uri,例如当你运行xdg-open时:firefox %u将会是cloudje:firefox 。 我认为最简单的方法就是在运行之前调整cloudjerun python脚本删除uri的第一部分。