Открыть адрес во внешнем приложении из браузера Chrome

1

введите описание изображения здесь

После того, как браузер Chrome отказался от расширений на основе NPAPI (которые включали для этой цели дополнения, аналогичные Openwith и Flashgot из Firefox), существует способ отправки ссылки из браузера на внешнее приложение (например, другой браузер, видеоплеер, пользовательский интерфейс). загрузчик и т. д.)?

Этот аддон NPAPI называется так: «Открыть с помощью внешнего приложения».

Есть ли альтернатива этому, учитывая произошедшие изменения?


источник

Ответы:

2

Больше нельзя напрямую вызывать в Chrome внешнее приложение, кроме как через выделенное расширение, но я не смог найти то, которое не использует NPAPI.

Есть еще один метод, который должен работать, который должен быть установлен в операционной системе: пользовательские протоколы, называемые также пользовательскими схемами URI.

Схема URI - это часть, которую можно найти в начале URL-адреса. Некоторые распространенные из них являются: http(s)://, ftp://, feed://, mailto:, news:. Список всех известных можно найти в списке схем универсального идентификатора ресурса (URI) IANA .

Все, что делают эти протоколы, это запускает приложение, которое обрабатывает параметр. После успешного запуска приложения оно может использовать параметры командной строки для получения URI, который его запустил. Обычный метод - вызвать известный скрипт, который обрабатывает его аргумент и запускает требуемую программу.

Включая здесь учебник для Windows, Linux и Mac слишком тяжело, но вот несколько полезных ссылок:


Чтобы ответить на запрос автора, ниже приведен сценарий Linux KDE, который устанавливает /path/progобработчик для протокола xyz://. Он создает для KDE файл $KDEDIR/share/services/xyz.protocolи заполняет его. Установки Gnome также устанавливаются (если это возможно), поскольку некоторые приложения по-прежнему используют их, даже если работают в KDE. Скрипт адаптирован из github .

#!/usr/bin/env bash
#
#    This script attempts to register a protocol handler for
#    links that look like sgaction://blah.  
#
#    It should be sufficient for gnome apps like pidgin and kde apps
#    like konqueror.  Firefox seems to pay attention to the gnome
#    settings at least to the degree that it recognizes links of the
#    form $protocol://blah as hot-links, but it may still ask you to
#    select the application the first time you click on one.

protocol=xyz
handler="/path/prog"

echo "Installing $protocol protocol handler for Gnome."

gconfTool="$(which gconftool-2)"
if [[ "$gconfTool" ]]; then
    gconftool-2 --set --type=string /desktop/gnome/url-handlers/$protocol/command "$handler \"%s\""
    gconftool-2 --set --type=bool /desktop/gnome/url-handlers/$protocol/enabled true
    gconftool-2 --set --type=bool /desktop/gnome/url-handlers/$protocol/need-terminal false
else
    echo "WARNING: gconftool-2 not found: skipping gnome url-handler registration."
fi


echo "Installing $protocol protocol handler for KDE."

kdeProtoDir=~/.kde/share/services

if [[ "$KDEDIR" ]]; then
    kdeProtoDir="$KDEDIR/share/services"
fi

if [[ ! -e "$kdeProtoDir" ]]; then
    mkdir -p "$kdeProtoDir"
fi

if [[ -e "$kdeProtoDir" ]]; then
    kdeProtoFile="$kdeProtoDir/$protocol.protocol"
    rm -f $kdeProtoFile
    cat > $kdeProtoFile << EOF
[Protocol]
exec=$handler "%u"
protocol=$protocol
input=none
output=none
helper=true
listing=false
reading=false
writing=false
makedir=false
deleting=false
EOF
else
    echo "WARNING: can't find or create KDE protocol directory: $kdeProtoDir:  skipping KDE url-handler registration."
fi


echo "Done."
harrymc
источник
Пока не опубликованы новые расширения, указанные решения зависят от ОС и требуют уровня компетенции, который мне недоступен. Я использую в основном Linux. Думаю, мне придется подождать, пока не будут опубликованы расширения, отличные от npapi (я не понимаю, почему это занимает так много времени, спрос должен быть огромным),
Я могу перечислить необходимые шаги для Linux. В какой версии Linux вы используете KDE или Gnome (и какая версия Gnome)?
harrymc
Это было бы прекрасно! Я использую несколько Linux-ов, но мой основной - KDE (Mint 18 с Plasma 5).
Я добавил bash-скрипт, который может сделать эту работу. Я не могу проверить, поэтому я делаю это по теории.
harrymc
Сейчас я даю награду. Но я не буду давать однозначного ответа. Я искал готовое расширение или, возможно, скрипт пользователя в Tempermonkey, который позволил бы то, что я спрашиваю. Я понятия не имею, как использовать ваш сценарий, мне нужно гораздо больше деталей. (Сохранены были?
0

К сожалению, Chrome не контролирует, какую программу запускать при вводе определенных URL или протоколов. Это решается Windows, если выбранная вами программа не имеет возможности добавлять новый протокол и связываться с ним.

Например, если вы установили utorrent и оставили его настройки по умолчанию, он откроется сам при нажатии на эту ссылку: magnet:? Xt = urn: btih: c12fe1c06bba254a9dc9f519b335aa7c1367a88a & dn . На самом деле, в Firefox вам будет предложено выбрать нужные программы, но Chrome не будет делать то же самое.

Sanny
источник
Я не думаю, что обычно браузеры имеют эту функцию, но с аддоном это должно быть возможно. Были такие аддоны, которые больше не работают.