Я сейчас создаю веб-страницу, и мне интересно, можно ли ввести в HTML команду, которая откроет установленное приложение Ubuntu, такое как Chromium, окно терминала или Nautilus.
Возможно ли что-то подобное? Спасибо!
Да, это называется «обработчики протоколов через Интернет». Вам нужен Chrome 13 или Firefox 3.0 или выше. Я видел, как раньше открывали LibreOffice.
Обе Mozilla и updates.html5rocks объясняют, как это работает. (Откройте в Chrome / Chromium chrome://settings/handlers
, и он покажет список текущих обработчиков. Firefox перечислит их в about:config
.)
Детали из 1-й ссылки:
Регистрация
Настройка веб-приложения в качестве обработчика протокола не является сложным процессом. По сути, веб-приложение использует registerProtocolHandler (), чтобы зарегистрироваться в браузере в качестве потенциального обработчика для данного протокола. Например:
navigator.registerProtocolHandler("mailto",
"https://www.example.com/?uri=%s",
"Example Mail");
Где параметры:
Когда браузер выполняет этот код, он должен отобразить подсказку пользователю, запрашивая разрешение на разрешение веб-приложению зарегистрироваться в качестве обработчика для протокола. Firefox отображает подсказку в области панели уведомлений.
Пример
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>Web Protocol Handler Sample - Register</title>
<script type="text/javascript">
navigator.registerProtocolHandler("fake", "http://starkravingfinkle.org/projects/wph/handler.php?value=%s", "Fake Protocol");
</script>
</head>
<body>
<h1>Web Protocol Handler Sample</h1>
<p>This web page will install a web protocol handler for the <code>fake:</code> protocol.</p>
</body>
</html>
Да, вы можете, добавив новый обработчик протокола в вашу Ubuntu. Следующий метод покажет вам, как зарегистрировать процесс открытия приложения как обработчик протокола app://[application_name]
в Ubuntu.
В терминале запустите:
mkdir -p bin
Эта команда создаст каталог bin
в вашей папке home
, если вы этого не сделаете уже есть.
После запуска:
gedit ~/bin/open_app.sh
Это создаст новый файл open_app.sh
в gedit.
Скопируйте и вставьте следующий скрипт в новый созданный файл:
#!/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
, чтобы предоставить доступ для выполнения сценария.
Теперь вы должны создать модуль запуска .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;
Сохраните файл и закройте его.
В приведенном выше файле строка MimeType=x-scheme-handler/app;
зарегистрирует обработчик схемы app://
, но чтобы она работала, нам нужно обновить кэш базы данных MIME-типов, выполнив команду:
sudo update-desktop-database
[ +1121] 4. Тест с терминала Теперь все должно работать. Чтобы проверить, работает ли он из терминала, выполните, например, эту команду:
xdg-open 'app://gedit'
Вы можете проверить из браузера, используя, например, следующую веб-страницу HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Open some applications</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<h3>Open some applications in Ubuntu from HTML</h3>
<p>Open terminal: <a title="Open" href="app://">app://</a>
(equivalent with: <a title="Open" href="app://gnome-terminal">app://gnome-terminal</a>)</p>
<p>Open Nautilus: <a title="Open" href="app://nautilus">app://nautilus</a></p>
<p>Open Chromium: <a title="Open" href="app://chromium-browser">app://chromium-browser</a></p>
<p>Open Ubuntu Software Center: <a title="Open" href="app://software-center">app://software-center</a>
(equivalent with: <a title="Open" href="apt://">apt://</a>)</p>
<p>...and so on</p>
</body>
</html>
Результат:
mount
без -t
опция
– joshumax
19 December 2014 в 07:28
mount
без -t
опция
– joshumax
19 December 2014 в 07:28
mount
без -t
опция
– joshumax
19 December 2014 в 07:28
mount
без -t
опция
– joshumax
19 December 2014 в 07:28
mount
без -t
опция
– joshumax
19 December 2014 в 07:28
mount
без -t
опция
– joshumax
19 December 2014 в 07:28