Обработка протокола браузера (Запуск своей программы для обработки протокола браузера.)

Модератор: Модераторы разделов

alexcrack
Сообщения: 6
ОС: Linux Mandriva 2010

Обработка протокола браузера

Сообщение alexcrack »

Имеется html страница со ссылками вида:
app:open:\\example.com\fs\example.avi
app:select:\\example.com\fs\example

Надо написать код, который бы обрабатывал протокол app. Т.е. чтобы по клику по ссылке в ЛЮБОМ браузере моя запущенная программа брала параметр "select" или "open" и путь, и с помощью QDesktopServices выполняла нужное действие (open - воспроизведение файла в проигрывателе по умолчанию, select - открытие каталога в файловом менеджере по умолчанию).
Остальная программа уже написана на C++ под Qt, так что код тоже нужен Qt.
Программа преимущественно под Linux, но ее также будут использовать пользователи Mac OS X.

Главный вопрос вот в чем: как из своей программы зарегистрировать протокол app, чтобы он открывался с помощью нее?
Ах да, путь в ссылке - по протоколу smb. т.е. \\example.com\fs\example.avi - это smb://example.com/fs/example.avi
Mandrake Linux 9.2 -> Mandrake Linux 10.0 -> Mandriva Linux 2008 -> Mandriva Linux 2010 -> Kubuntu 11.04
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Обработка протокола браузера

Сообщение NickLion »

alexcrack писал(а):
01.07.2010 15:04
Надо написать код, который бы обрабатывал протокол app. Т.е. чтобы по клику по ссылке в ЛЮБОМ браузере моя запущенная программа брала параметр "select" или "open" и путь, и с помощью QDesktopServices выполняла нужное действие (open - воспроизведение файла в проигрывателе по умолчанию, select - открытие каталога в файловом менеджере по умолчанию).

Бою.сь, что в ЛЮБОМ браузере - это невозможно. В Opera есть возможность сопоставить с протоколом любую программу. В Firefox список такой тоже есть, но как туда добавить свой пункт неясно. Но в любом случае написать расширение можно. Для Konqueror можно KIO модуль написать для такого протокола. Но всё равно это индивидуальный подход к браузеру.
Спасибо сказали:
alexcrack
Сообщения: 6
ОС: Linux Mandriva 2010

Re: Обработка протокола браузера

Сообщение alexcrack »

Должна же быть возможность изменить системные настройки (протокол - приложение), которые не зависят от браузера. Просто как это сделать из моей программы...
Mandrake Linux 9.2 -> Mandrake Linux 10.0 -> Mandriva Linux 2008 -> Mandriva Linux 2010 -> Kubuntu 11.04
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Обработка протокола браузера

Сообщение NickLion »

alexcrack писал(а):
01.07.2010 21:50
Должна же быть возможность изменить системные настройки (протокол - приложение), которые не зависят от браузера. Просто как это сделать из моей программы...

Не вижу логики, по которой получается, что должна быть такая возможность? Браузеры пишут совершенно разные разработчики. Единого интерфейса никогда не существовало. Откуда должна появиться глобальная возможность связать протокол с приложением? У браузеров даже настройки подключения того же прокси разнятся, хотя переменные http_proxy никто не отменял.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Обработка протокола браузера

Сообщение sash-kan »

alexcrack
список воспринимаемых браузером протоколов никакого отношения к операционной системе не имеет.
то, что вы описали, является реализацией стандартного для всех браузеров протокола file:
file:///some/file
file:///some/dir
обработка его тоже строго индивидуальна для браузера и тоже не имеет к операционной системе никакого отношения.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
alexcrack
Сообщения: 6
ОС: Linux Mandriva 2010

Re: Обработка протокола браузера

Сообщение alexcrack »

Например, в винде связь протокола и приложения прописывается в реестре, после чего эта ссылка с любого браузера открывается в нужном приложении. Как осуществить это в кедах и гноме?
Mandrake Linux 9.2 -> Mandrake Linux 10.0 -> Mandriva Linux 2008 -> Mandriva Linux 2010 -> Kubuntu 11.04
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Обработка протокола браузера

Сообщение diesel »

http://kb.mozillazine.org/Register_protocol - например. Там есть вариант и про Gnome, правда не факт что будет работать абсолютно для всех браузеров. Скорее нужно гуглить как назначить protocol handler для каждого конкретного браузера.
Спасибо сказали: