Ubuntu自定义的URL协议处理程序

7

我想问一个问题,但是我先要展示我的文件。

<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”替换为“Exec=/usr/bin/cloudjerun -c %U”或“Exec=/usr/bin/cloudjerun -c %s”或其他什么吗?

2
教程链接已失效。 - Omkar
2个回答

6
在桌面文件中,可以使用以下参数来执行Exec操作。
Add...  Accepts...
%f      a single filename.
%F      multiple filenames.
%u      a single URL.
%U      multiple URLs.
%d      a single directory. Used in conjunction with %f to locate a file.
%D      multiple directories. Used in conjunction with %F to locate files.
%n      a single filename without a path.
%N      multiple filenames without paths.
%k      a URI or local filename of the location of the desktop file.
%v      the name of the Device entry.

所以在您的情况下,您可以像您描述的那样调整您的 "Exec" 条目为以下内容:
Exec=/usr/bin/cloudjerun -c %u

请注意,%u 是完整的 URI,因此当您运行 xdg-open cloudje:firefox 时,%u 将是 cloudje:firefox。最简单的方法是在运行 cloudjerun Python 脚本之前删除 URI 的第一部分。

如果我仍在为这家公司工作,你会帮助我很多!WebSockets是我的解决方案! - Stephan Meijer

-1

这个可能会有所帮助
(这是一个可以轻松创建自定义协议处理程序的程序)
(您需要安装kde-apps或kde-full,然后运行此程序,您还需要在终端中运行此程序。
同时,您必须root身份运行它(sudo ~/Downloads/ProtocolCreator.sh))
它将在您的主目录中创建一个名为协议处理程序名称(例如https中的https:)的文件夹。使用$1获取完整的URL。没有简单的方法使它只是[something]:之后的部分...
修改该文件夹内的文件以包含您需要的所有内容
现在,如果您想打开Firefox,请使用<a href="blablabla:firefox">打开Firefox</a>,而文件夹中的文件具有以下内容:
#!/bin/bash
firefox
现在当链接被点击时,Firefox应该会打开!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接