是否可以从HTML打开Ubuntu应用程序?
我现在正在创建一个网页,我想知道是否可以在HTML中输入一个命令来打开已安装的Ubuntu应用程序,如Chromium,终端窗口或Nautilus。
这样的事情可能吗? 谢谢!
是的,您可以在Ubuntu中添加新的协议处理程序。 以下方法将向您展示如何在Ubuntu中将app://[application_name]
程序的打开过程注册为app://[application_name]
协议处理程序。
1.创建应用程序启动器脚本
-
在终端运行中:
mkdir -p bin
如果您还没有该目录,则此命令将在您的
home
文件夹中创建一个bin
目录。 -
运行后:
gedit ~/bin/open_app.sh
这将在gedit中创建新文件
open_app.sh
。 -
将以下脚本复制并粘贴到新创建的文件中:
#!/bin/bash if [[ "$1" != "app://" ]]; then app=${1#app://} nohup "$app" &>/dev/null & else nohup gnome-terminal &>/dev/null & fi
-
保存文件并关闭它。
-
回到终端并运行:
chmod +x ~/bin/open_app.sh
授予脚本的执行访问权限。
2.为应用程序启动器创建.desktop文件
现在你必须为上面的脚本创建一个.desktop启动器,并告诉Ubuntu将此启动器用作app://
协议处理程序。 使用以下命令创建/usr/share/applications/appurl.desktop
文件:
sudo -H gedit /usr/share/applications/appurl.desktop
并添加以下内容:
[Desktop Entry] Name=TerminalURL Exec=/home/radu/bin/open_app.sh %u Type=Application NoDisplay=true Categories=System; MimeType=x-scheme-handler/app;
保存文件并关闭它。
3.刷新mime类型数据库
在上面的文件中,行MimeType=x-scheme-handler/app;
注册app://
scheme handler,但要使其工作,我们应该通过执行命令更新mime类型数据库缓存:
sudo update-desktop-database
4.从终端测试
现在一切都应该有效。 要测试它是否可以从终端运行,请运行以下命令:
xdg-open 'app://gedit'
4.使用HTML从浏览器进行测试
您可以使用以下HTML网页从浏览器进行测试:
Open some applications Open some applications in Ubuntu from HTML
Open terminal: app:// (equivalent with: app://gnome-terminal)
Open Nautilus: app://nautilus
Open Chromium: app://chromium-browser
Open Ubuntu Software Center: app://software-center (equivalent with: apt://)
...and so on
结果:
是的,它被称为“基于Web的协议处理程序”。 您需要Chrome 13或Firefox 3.0或更高版本。 我已经看到它曾用于打开LibreOffice。
Mozilla和updates.html5rocks都有关于它是如何工作的解释。 (在Chrome / Chromium chrome://settings/handlers
打开,它将显示当前处理程序的列表.Firefox将在about:config
列出它们。)
第一个链接的零件:
注册
将Web应用程序设置为协议处理程序并不是一个困难的过程。 基本上,Web应用程序使用registerProtocolHandler()将自己注册为浏览器,作为给定协议的潜在处理程序。 例如:
navigator.registerProtocolHandler("mailto", "https://www.example.com/?uri=%s", "Example Mail");
参数是:
- 协议。
- URL模板,用作处理程序。 “%s”将替换为链接的href,并在结果URL上执行GET。
- 协议处理程序的用户友好名称。
当浏览器执行此代码时,它应向用户显示提示,请求允许Web应用程序注册为协议处理程序的权限。 Firefox在通知栏区域中显示提示。
例
Web Protocol Handler Sample - Register Web Protocol Handler Sample
This web page will install a web protocol handler for the fake:
protocol.